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的能力。

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