首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ATG核- EJB关系

ATG核- EJB关系
EN

Stack Overflow用户
提问于 2014-11-21 18:47:50
回答 2查看 568关注 0票数 3

我对ATG和EJB并不十分熟悉,只是对后者有一个粗略的概念。刚刚开始阅读有关ATG的内容,它的一个组件(即Nucleus)似乎使用EJB。似乎ATG中的其他东西都是基于原子核的。我可能很快就得和ATG合作了,所以:

1) ATG核与EJB的关系是什么?

( 2)核心使用的EJB是否通常使用EJB?

( 3)核子是否需要EJB?我能用别的东西代替吗?

4) Nucleus是使用EJB的全部功能,还是在某个地方替换它?

5)核心所提供的功能能否完全由EJB取代?

6)我是否需要学习EJB才能使用Nucleus?这能提高我对原子核的理解吗?

对不起,如果这些问题很愚蠢,我只是想加快我的学习速度。

还在wikepedia上找到了一篇关于一些DataNucleus (以前称为)的文章。是同一个核子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-24 14:04:25

Nucleus不是EJB,也不使用EJB。

Nucleus是一个bean容器,有点类似于或Application。

更具体地说,它是一个注册表和一个容器,用于管理组件的生命周期和之间的绑定。

从这个意义上说,您可能认为它类似于EJB容器,但它并不那么复杂。

它管理的组件是简单的JavaBeans (POJO),尽管惯例规定它们通常是ATG提供的类(如GenericService)的子类。

当您打包ATG应用程序时,它会组装成EAR。

当在Java应用服务器中部署和实例化此EAR时,启动的是Nucleus。反过来,原子核实例化它所负责的组件。

您可以将应用程序与EJB一起打包,还可以将其他EAR部署到同一个应用服务器中,但它们不是ATG应用程序。它们不使用原子核,反之亦然。

所以,回答你的问题

1) ATG核与EJB的关系是什么?

没有。

( 2)核心使用的EJB是否通常使用EJB?

不是的。核心不使用EJB。它使用POJO

( 3)核子是否需要EJB?

不是的。

我能用别的东西代替吗?

是。我建议您使用ATG提供的基类,然后根据需要扩展所需的组件或创建新的组件。

4) Nucleus是使用EJB的全部功能,还是在某个地方替换它?

它在几乎所有方面都取代了它。

核心是一个注册中心,也是一个组件容器。由Nucleus管理的每个组件在Nucleus名称空间中都有一个唯一的名称。Nucleus通过JNDI和Java名称解析API方法公开这些组件。

您还可以将Nucleus组件公开为web服务(SOAP)和REST服务(基于HTTP的JSON)。ATG作为一个平台(技术上不是Nucleus,但ATG提供的组件运行在Nucleus中)也提供了消息驱动的事件框架,用于通过JMS开发消息驱动的逻辑。

此外,ATG平台(同样不是Nucleus,而是由ATG提供的组件,运行在Nucleus中)提供了一个仓库框架,它是一个ORM层,但不仅适用于关系数据库数据源,也适用于LDAP、XML和其他文件数据源。

5)核心所提供的功能能否完全由EJB取代?

在技术层面上,是的。

但是,EJB3(特别是在EJB3之前)非常笨重,看起来过于复杂。依赖注入、托管实体(ORM)等只是很少的努力ATG,在其他一些框架(Spring等)中也是如此。

此外,ATG作为一个平台(技术上也不仅仅是核心),为个性化和商务提供了许多复杂的业务功能。

6)我是否需要学习EJB才能使用Nucleus?

不是的。不用谢

这能提高我对原子核的理解吗?

是。但只能以非常有限的方式。任何学习或理解都是从已知到未知的旅程。已知的基础越大,就越容易向未知的方向移动,因为你有更多的起点。

如果您已经非常了解Java,那么您将能够联系到ATG平台在幕后所做的事情,因此更容易理解它。但是,如果您根本不了解EJB,那么为了更好地理解ATG而学习它实际上会产生有害的影响。

另一方面,我认为您必须了解和理解Java应用程序(JSP、Servlet、Filters等)。为了与ATG合作最好。

还在wikepedia上找到了一篇关于一些DataNucleus (以前称为)的文章。是同一个核子吗?

不是的。是完全不相关的

票数 4
EN

Stack Overflow用户

发布于 2017-05-19 12:08:58

除非排除DafEar模块,否则ATG在其汇编程序生成的每个ear中都会打包无状态会话EJB。ATG中的跨应用程序会话功能需要DafEar EJB,包括dyn/admin控制台和ACC。

每个ATG由多个war文件和一个EJB文件组成。您可以在其中看到EJB,并由ATG汇编程序生成的任何ears引用:

atg/META/application.xml:

代码语言:javascript
复制
<module>
    <ejb>atg_bootstrap_ejb.jar</ejb>
</module>

EJB来自用于构建ear的ATG安装的DafEar模块,例如:${ATG_HOME}/DafEar/base/j2ee-components/

可以在没有EJB的情况下构建ATG ear,但不需要dyn/admin和ACC。在某些情况下,例如BCC/merch,排除DafEar和访问dyn/admin中的关键管理组件(如DeploymentServer )太不切实际了,所以DafEar通常部署在ATG / Oracle应用程序中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27068219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档