EJB2与EJB3
EJB(enterprisejavabeans)是javaee(Java平台,企业版)规范中的javaapi(应用程序编程接口)。EJB描述了企业应用程序开发的体系结构模型。这是一个托管服务器端模型,能够捕获企业应用程序的业务逻辑。IBM是EJB的最初创建者,在1997年开发了它。太阳微系统公司在1999年采用了它。
在引入EJB之前,人们发现对后端业务代码中发现的问题的解决方案经常由程序员重新实现。因此,引入EJB来解决这些常见问题,如持久性、事务完整性和安全性。EJB提供了处理这些后端问题的标准方法,通过指定应用服务器应该如何处理事务、如何与JPA(Java持久性API)服务集成、处理并发控制、处理JMS(Java消息服务)事件、用JNDI(Java命名和目录接口)解决命名问题、开发安全程序通过JCE(Java密码扩展)和JAAS(Java认证和授权服务),部署组件,与RMI-IIOP(Internet-Orb协议上的Java远程方法调用接口)进行远程通信,开发web服务,调用异步方法,使用定时器服务。
EJB2型
EJB2(EJB2.0)于2001年8月22日发布。它描述了通过结合不同供应商开发的工具来用Java开发分布式面向对象应用程序的规范。EJB2的主要目标之一是允许程序员更容易地开发企业应用程序,而不必了解底层细节,如多线程和连接池。另一个目标是允许程序员只编写一次“Bean”就可以在任何地方运行而无需重新编译(遵循Java编程语言的“只写一次,到处运行”的口号)。此外,EJB2旨在允许不同供应商开发的组件轻松地进行互操作,并允许供应商为其产品编写支持ejb的扩展。
EJB3型
EJB3(EJB3.0)于2006年5月11日发布。EJB3允许程序员使用注释来代替以前版本中使用的部署描述符,从而使他们的生活变得非常简单。EJB3包含一个业务接口和一个可以实现该业务接口的特定实体bean,从而消除了使用home/remote接口和ejb的需要-jar.xml文件文件。与EJB2相比,EJB3的总体性能有了很大的提高,在这个版本的EJB中,它在可配置性、灵活性和可移植性方面有了很大的提高。
EJB2和EJB2有什么区别?
与EJB2相比,EJB3在配置和性能方面有显著的改进。这种性能改进的一个原因是EJB3将POJO(普通的旧Java对象)与元数据和XML部署描述符一起使用,而不是EJB2中用于对象引用的JNDI查找。EJB3的配置要简单得多,因为程序员不需要实现Home/Remote接口和其他接口(例如SessionBean),这样就不需要使用容器回调方法(比如ejbActivate和ejbStore)。
此外,EJB3在灵活性和可移植性方面优于EJB2。例如,很容易将EJB3实体转换为DAO(数据访问对象),反之亦然,因为EJB3实体是轻量级的(与实现上述接口的重量级EJB2实体相反)。用EJB3编写的数据库查询非常灵活,因为它使用了一个改进的EJB-QL,而不是EJB-QL的旧版本,后者有几个限制。EJB3通过为所有数据事务支持更通用的JPA,消除了EJB2(使用实体bean进行数据库访问)的所有可移植性问题。