EJB3带来了哪些功能以及EJB3如何与Spring Framework结合?

时间:2010-12-22 22:48:26

标签: java spring ejb-3.0 ejb

我从未参与ejb工作,当我开始编程时Spring已经到了,我的所有项目都只有Spring,最近我接受了一次采访,他们想要了解EJB3.0所以我想知道EJB3.0 stack up with Spring Framework如何以及为什么现在许多项目与Spring Framework and not with EJB3.0 在这里引用我,因为我可能是错的

如果可以从实际角度解释使用另一个的差异和好处,我将非常感激。

注意请不要给wiki链接作为答案,因为我想了解这个技术如何叠加。

更新此外,开始学习EJB3的最佳方法是什么,推荐的书籍,相同的在线教程是什么?

3 个答案:

答案 0 :(得分:10)

EJB是一项相当古老的技术(大约1999年)。但是,在该标准的第3版之前,它使用起来非常不方便。 Spring作为一种理智的替代品变得流行,它提供了一些相同的核心功能(声明性事务和安全性)以及一些新的功能(依赖注入,AOP)。它还与许多其他技术(如Hibernate)很好地集成。

然而,从V3.0开始,EJB(或者更确切地说,EJB所属的整个Java EE平台)得到了重大改进,并且变得更容易使用。此外,各种框架(包括Spring)广泛使用的许多功能都被制作成官方标准并添加到Java EE中。

目前,Java EE平台在流行度方面与Spring相比有很多优势,因为它们即使在易用性和功能方面也是如此,而且Java EE具有基于开放标准的优势大多数组件的多个实现。与此同时,在与其他框架(曾经是它的优势)集成时,Spring似乎在跟上最新技术水平时遇到了问题。

答案 1 :(得分:5)

我想说唯一的主要区别是Java EE 5和6是标准。它采用了Spring和其他人的想法,并从中创建了一个标准。与旧的EJB相比,EJB3是白天和黑夜。您的所有EJB都是POJO,容器会注入依赖项。所有这些不同的接口都已消失,并且从主接口手动创建实例。如果你已经用Spring完成了很多工作,最多只花几个小时来学习。如果您正在进行Web应用程序,您还需要查看JSF。

我从来没有用旧EJB做过真正的应用程序,因为它真的很痛苦。 EJB3我一直都在使用,因为它毫不费力。如果您想尝试最新的一切,请获取glassfish的副本,我认为它仍然是唯一经过Java EE 6认证的服务器。

答案 2 :(得分:1)

就依赖注入和MVC架构而言,Spring在灵活性和易用性方面优于Java EE 5,尽管正如其他人所说,Java EE 5(EJB3)是对以前版本的一个巨大改进Java EE / EJB。使用Java EE 6,我相信Java EE在新CDI(JSR-299)实现和MVC w / JSF 2.0中都领先于Spring。

Oracle在线教程是初步的,但是学习Java EE的一个很好的起点。在Java EE 6中学习DI的一个很好的资源是Reza Rahman的系列文章http://www.theserverside.com/news/1373391/Dependency-Injection-in-Java-EE-6-Part-1