Nucleus不是EJB並且不使用EJB。
Nucleus是一個bean容器,有點類似於Spring Bean Factory或Application Context。
更具體地說,它是用於管理組件之間的生命週期和綁定的註冊表和容器。
從這個意義上說,您可能認爲它與EJB容器相似,但它複雜得多。
它管理的組件是簡單的JavaBeans(POJO),儘管約定規定它們通常是ATG提供的類(如GenericService)的子類。
當你打包一個ATG應用程序時,它被組裝成一個EAR。
當在Java EE應用程序服務器中部署並實例化此EAR時,它就是啓動的Nucleus。 Nucleus反過來實例化它負責的組件。
您可以將您的應用程序與EJB一起打包,並且可以將其他EAR部署到同一個應用程序服務器中,但這些不是ATG應用程序。這些不使用Nucleus,反之亦然。
因此,要回答你的問題
1)什麼是ATG核和EJB之間的關係?
無。
2)EJB是核心使用普通的EJB的嗎?
否Nucleus不使用EJB。它使用POJOs
3)EJB是Nucleus必需的嗎?
號
我可以用別的東西來代替?
是的。我建議你使用ATG提供的基類,然後根據需要擴展你需要的那些組件或創建新的組件。
4)Nucleus是否使用EJB的全部功能或將其替換到某處?
它在幾乎所有方面都取代了它。
Nucleus是一個註冊表以及一個組件容器。由Nucleus管理的每個組件在Nucleus名稱空間中都有唯一的名稱。 Nucleus通過JNDI和Java名稱解析API方法公開這些組件。
您還可以將Nucleus組件公開爲Web服務(SOAP)和REST服務(HTTP上的JSON)。 ATG作爲一個平臺(技術上不是Nucleus,而是ATG提供的在Nucleus內運行的組件)也提供了一個通過JMS開發消息驅動邏輯的消息驅動事件框架。此外,ATG平臺(同樣不是Nucleus,而是Nucleus中運行的ATG提供的組件)提供了一個作爲ORM層的Repository框架,但不僅僅是關係數據庫數據源,還包括LDAP,XML和其他文件數據源。
5)Nucleus提供的功能是否可以完全被EJB取代?
在技術層面,是的。
但是,EJB(特別是在EJB3之前)非常笨重,看起來過於複雜。依賴注入,管理實體(ORM)等只是ATG的功夫少得多,並且在其他一些框架(Spring Hibernate等)中也是如此。
此外,ATG作爲一個平臺(同樣,不是技術上只是Nucleus)爲個性化和商業提供了許多複雜的業務功能。
6)我是否需要學習EJB來使用Nucleus?
不,不是在所有
它會提高我的核的理解?
是的。但僅限於非常有限的方式。任何學習或理解都是從已知到未知的旅程。已知的基數越大,越容易朝未知方向移動,因爲您有更多的起跳點。
如果您已經非常瞭解Java EE,那麼您將能夠與ATG平臺在底層進行的操作相關,因此會更容易理解。但是,如果您根本不瞭解EJB,那麼爲了更好地理解ATG而學習它實際上會產生不利影響。另一方面,我認爲您必須瞭解並理解Java EE Web應用程序(JSP,Servlets,過濾器等)才能最好地使用ATG。
在wikepedia上也發現了一篇關於DataNucleus(以前稱爲Java Persistent Objects JPOX)的文章。這是同一個Nucleus嗎?
號這是完全不相關的