EJB2 vs EJB3
EJB(企业Javabeans)是Java API(应用程序编程界面),在Java EE(Java Ee,企业版)规范中找到。EJB描述了用于开发企业应用程序的架构模型。这是一个托管服务器端模型,能够捕获企业应用程序的业务逻辑。IBM是EJB的原始创作者,他于1997年开发了它。SunMicrosystems于1999年采用了它。
在引入EJB之前,发现程序员经常重新实现后端商业法规中发现的问题的解决方案。结果,引入了EJB来解决这些常见问题,例如持久性,交易完整性和安全性。EJB通过指定应用程序服务器应如何处理交易,与JPA(Java Persistence API)服务,处理并发控制,处理JMS(JAVA消息服务)事件,解决与JNDI(JNDI)的命名(JNDI(JAVA命名和目录界面),与JCE(Java密码扩展)和JAAS(Java身份验证和授权服务)一起开发安全程序,部署组件,与RMI-IIOP(通过Internet Intern Interb协议)远程通信,开发Web服务,调用异步方法并使用计时器服务。
EJB2
EJB2(EJB 2.0)于2001年8月22日发布。它通过结合不同供应商开发的工具来描述用于开发Java中分布式对象的应用程序的规范。EJB2的主要目标之一是允许程序员更轻松地开发企业应用程序,而无需了解低级细节,例如多线程和连接池。另一个目标是允许程序员编写一次“ bean”一次,并在任何地方运行,而无需重新编译(遵守Java编程语言的“写一次,在任何地方运行”口号)。此外,EJB2旨在允许不同供应商开发的组件轻松互操作,并允许供应商为其产品提供支持EJB的产品。
EJB3
EJB3(EJB 3.0)于2006年5月11日发布。EJB3通过允许他们使用注释代替以前版本中使用的部署描述符,使程序员的生活变得非常容易。EJB3包含一个业务界面和一个特定的实体bean,可以实现该业务界面,从而消除了使用家庭/远程接口和ejb-jar.xml文件的需求。与EJB2相比,EJB3的总体性能得到了很大改善,并且在EJB的发行版中,可配置性,灵活性和可移植性有了可观的提高。
EJB2和EJB3有什么区别?
EJB3在配置和性能上比EJB2具有明显的改善。这种性能改进的原因之一是将POJO(普通的旧Java对象)与EJB3一起使用元数据和XML部署描述符,而不是EJB2中用于对象引用的EJB2中使用的JNDI查找。EJB3的配置要简单得多,因为程序员不需要实现HOME/远程接口和其他(例如SessionBean),这消除了使用容器回调方法(例如EJBactivate和EJBStore)的需求。
此外,在灵活性和可移植性领域,EJB3比EJB2好。例如,很容易将EJB3实体转换为DAO(数据访问对象),反之亦然,因为EJB3实体是轻量级的(与重量级EJB2实体相反,该实现了上述接口)。在EJB3中编写的数据库查询非常灵活,因为它使用了精制的EJB-QL,代替了旧版本的EJB-QL,该版本具有多个限制。EJB3通过支持所有数据交易的更广泛的JPA来删除EJB2(使用实体bean用于数据库访问)的所有可移植性问题。
与需要EJB容器执行的EJB2不同,可以在独立的JVM(Java Virtual Machine)中执行EJB3,而无需使用容器(这是可能的,因为它不能实现标准接口)。与EJB2不同,EJB3很容易在第三方提供的持久性提供者中使用。EJB3和EJB2之间的另一个重要区别是EJB3可以使用基于注释的安全性,而EJB2使用基于部署描述符的安全性。这意味着在EJB3中,配置和设置任务要容易得多,并且与EJB2相比,性能开销幅度大大降低。
发表评论