EJB3.0介绍

EJB3.0介绍
1. EJB2的缺点
 为了实现一个EJB,你必须实现一系列接口和类:Remote接口、Local接口、Remote Home接口、Local Home接口、一个Bean实现类。
 你的Bean实现类,必须实现EJB接口中定义的各种回调方法:ejbCreate、ejbPassivate等等,虽然在大多数的应用程序中都无需用到这些接口。
 另外一个痛苦是,你无法在ejb容器之外测试你的EJB。
 EJB-QL,EJB查询语言,很难用。
 EJB2无法对继承关系进行映射。
2. EJB3.0的目标
 简化企业应用开发
 对持久层API进行标准化

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中出现的新特性:Annotations。Annotation特性使得发布描述文件变成一个可选项,而非必选项。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、@Resource等annotations,这些依赖关系现在可以由容器来注入到你的普通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.0将Java持久化模型进行标准化,Hibernate扮演了至关重要的角色。一套完整的Java Annotations被用来定义处理O-R映射和不同的对象关系类型。EJB 3.0也增强了EJB-QL查询语言。支持动态查询、子查询、批量更新、批量删除等。
3.7 可以脱离容器使用
EJB 3.0规范允许你在普通的Java应用程序中使用它的持久化API。JBoss EJB 3.0,也给你这种脱离应用服务器在单独的应用程序、Junit测试单元、Tomcat或别的应用服务器中使用session bean,message driven bean的能力。

你可能感兴趣的:(java,Hibernate,应用服务器,bean,ejb)