我对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 (以前称为)的文章。是同一个核子吗?
发布于 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 (以前称为)的文章。是同一个核子吗?
不是的。是完全不相关的
发布于 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:
<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应用程序中。
https://stackoverflow.com/questions/27068219
复制相似问题