Ejb 2.0和ejb 3.0
ejb 2.0和ejb3.0都是Enterprise Java Beans(EJB)的版本,它在管理的服务器端架构中广泛流行,用于企业应用程序的模块化构建。 ejb2.0和ejb3.0都以相同的方式为其用户提供服务,但关于EJB 3.0的核心是它与ejb2.0相比简化了开发人员的生活。 ejb 2.0是在JCP(Java Community Process)下设计的,它使EJB体系结构能够更容易地实现和部署基于Java技术的Web服务应用程序。另一方面,ejb 3.0提供了一个定义新的简化EJB API的基础,有助于简化开发。它的附加功能是新的Java Persistence API,用于管理Java EE和Java SE的持久性和对象/关系映射。
ejb 2.0使用实体bean来访问数据库,但ejb 3.0支持Java Persistence API以满足其所有数据需求,这些需求通用化足以解决所有可移植性问题。 ejb 3.0在性能方面表现更好,它使用POJO,新引入的元数据注释比XMLDescriptor文件和JNDI更快,ejb 2.0用于对象引用。
ejb 2.0在编写Home和Remote Interfaces以及执行标准接口(如javax.ejb.SessionBean)方面非常重要。 ejb 3.0没有使用任何标准接口的限制。它是一个简单且配置良好的POJO,不需要实现容器回调方法,如ejbActivate,ejbLoad,ejbStore等。像EJB 3.0实体一样的POJO是轻量级的,并且很容易从DAO转换为Entity bean,反之亦然。
ejb 2.0具有使用EJB-QL编写数据库查询的限制和不灵活性,而ejb 3.0正在利用改进的EJB-QL进行编写,因此编写的数据库查询非常灵活。
通过使用部署描述符在ejb 2.0中提供了安全性。 EJB3.0使用注释来简化安全问题的配置和设置任务。 ejb 3.0可以很容易地与可插拔的第三方持久性提供程序一起使用,但ejb 2.0在这方面有局限性。
摘要: 1. ejb 2.0使用实体Beans访问数据库,但ejb3.0使用JPA访问数据库。 2. ejb.0需要部署描述,但在使用ejb3.0时不需要部署描述。 3.在ejb 2.0中,我们必须编写Home和Remote接口来访问数据库,而ejb3.0没有这样的约束,在这方面更方便。 4.安全问题通过ejb2.0中的部署描述符进行处理,但ejb3.0正在使用注释。 5. ejb 2.0在与第三方持久性提供商的可插拔性方面存在局限性。 6.在ejb3.0中,Query非常灵活,通过精炼的EJB-QL启用了几个级别的连接。