EJB介紹

 

1.     EJB2的缺點

l         爲了實現一個EJB,你必須實現一系列接口和類:Remote接口、Local接口、Remote Home接口、Local Home接口、一個Bean實現類。

l         你的Bean實現類,必須實現EJB接口中定義的各種回調方法:ejbCreateejbPassivate等等,雖然在大多數的應用程序中都無需用到這些接口。

l         另外一個痛苦是,你無法在ejb容器之外測試你的EJB

l         EJB-QLEJB查詢語言,很難用。

l         EJB2無法對繼承關係進行映射。

2.     EJB3.0的目標

l         簡化企業應用開發

l         對持久層API進行標準化

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

3.     EJB3.0的關鍵特性

3.1  被簡化的EJB API

EJB3.0消除了對Home接口的依賴,所有的持久化對象不必再實現任何EJB API接口。Session Bean,Message driven Bean,Entity Bean現在只是簡單的Java Bean

3.2  Java Annotations

EJB 3.0需要用到JDK5.0中出現的新特性:AnnotationsAnnotation特性使得發佈描述文件變成一個可選項,而非必選項。EJB 3.0 定義了很多Annotation,覆蓋了衆多與持久化相關的概念。比如Bean的類型、依賴注入、事務管理、安全、回調、O-R映射、關係等等。如果你想要覆蓋在Annotation中的定義,那麼發佈描述文件依然有它的用武之地。Jboss應用服務器和Hibernate都支持這些Annotation,這就意味着,如果你使用hibernate的話,你可以在ejb3.0容器之外和在單獨的Java應用程序中獲得ejb3.0 annotation所帶來的一切好處。

 

3.3  依賴注入(DI

再也沒有以前那些通過JNDI來查找EJB的樣板代碼了通過定義@Inject@EJB@Resourceannotations這些依賴關係現在可以由容器來注入到你的普通Java Bean中。

3.4  可選的回調機制

開發者們現在可以僅僅實現他們感興趣的那些回調方法了。通過定義@PostConstruct,@PreDestroy,@PrePersist或者@PostPersist,開發者們可以映射任何Java Bean或回調類的方法,讓它們接收這些事件。

3.5  Entity Manager API

一個普通的Java Bean實例,可以通過EntityManager API來持久化到數據庫,當然也可以從EntityManager中獲取一個Java Bean實例,修改之後,再次持久化到數據庫中。Jboss應用服務器和Hibernate都支持這個新的API

3.6  簡化的持久化模型和改良的查詢

EJB 3.0Java持久化模型進行標準化,Hibernate扮演了至關重要的角色。一套完整的Java Annotations被用來定義處理O-R映射和不同的對象關係類型。EJB 3.0也增強了EJB-QL查詢語言。支持動態查詢、子查詢、批量更新、批量刪除等。

3.7  可以脫離容器使用

EJB 3.0規範允許你在普通的Java應用程序中使用它的持久化APIJBoss EJB 3.0,也給你這種脫離應用服務器在單獨的應用程序、Junit測試單元、Tomcat或別的應用服務器中使用session bean,message driven bean的能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章