EJB 2.0和EJB 3.0在对象导向方面的主要区别是什么?

12

我想尝试EJB,并正在研究EJB 3.0的理论。我知道在EJB 3.0中,您不必使用部署描述符,而是可以使用注释,也不必编写 HomeRemote 接口。

除了这些,EJB 2.0 EJB 3.0 之间还有其他关键的面向对象方面的区别吗?

2个回答

23

以下是EJB 2.0和3.0的主要区别:

  1. EJB 3.0取消了home接口,使查找过程比EJB 2.0更简单。
  2. 使用注解使得EJB 3.0成为最新技术,而EJB 2.0则使用home和remote接口。
  3. EJB 2.0部署实体bean来访问数据库。EJB 3.0有Java Persistence API来访问数据,它被普遍使用以解决可移植性问题。
  4. EJB 3.0使用POJO和元数据注释(一种新的引入)相结合,因此性能更好。POJO比EJB 2.0用于对象引用的XMLDescriptor和JNDI更快,而且EJB 2.0并未实现POJO。
  5. 当写home和remote接口时,EJB 2.0非常繁琐。EJB 3.0没有限制使用任何标准接口,它是一个配置良好、简单的POJO,并且不需要执行容器回调方法,如ejbActive、ejbStore等,这些方法是EJB 2.0使用的。
  6. 在EJB 3.0中,实体bean可以轻松地转换为DAO,反之亦然。而在EJB 2.0中不可能做到。
    希望对您有所帮助。

3
您说得对,这些是EJB 2和3之间的主要区别。一般来说,EJB 3吸收了轻量级注入框架(如Spring)的所有优点,并使EJB尽可能接近普通POJO。
然而,今天已经是2013年中期了,为什么您还想知道EJB2和EJB3之间的区别呢?EJB2已经过时了。学习3.x版本,忘记旧版本。现在学习EJB 2就像在汽车发明之前学习骑马一样,因为人们曾经使用马作为交通工具。

即使我同意你的答案,我仍然忍不住和所有人分享,在我的当前工作中(2015年),EJB2随处可见。尽管有一些迁移到EJB3的计划。真是想不到! - jambriz
1
@jambriz,在我妻子工作的公司,他们使用Cobol语言。然而,这并不意味着这种语言已经过时,除非高科技产业完全崩溃,否则我看不到学习这种语言的任何理由。 - AlexR
有没有关于EJB3的特定教程? - rolling stone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接