场景
您已使用EJB版本3开发了一个webapp.
系统已部署,交付并由客户使用.
如果你必须从头开始重写系统,你会再次使用EJB吗?
无:不回答这个问题,回答这一个代替.
是的:根据您的个人经验,提供EJB解决的一个重要的实际问题.
让答案只包含一个问题.这将让其他读者投票支持EJB的最佳功能.
我认为这取决于你所谈论的EJB的版本.让我们讨论仅有的两个相关(IMO)版本.
遗留系统中的某些人可能仍会使用EJB 2.1.它们确实最有用作RPC抽象.他们还提供了一个基本的ORM(对象 - 关系映射)系统.正如您所提到的,提供了事务支持.因此,如果您要构建一个您希望与远程系统通信的系统,传输面向对象的数据并以事务方式执行,您可能会发现EJB值得付出努力.否则,我会说远离.
但是,EJB 3.0得到了很大的改进.它具有以前版本的所有功能,但以更直接的方式进行.它还提供了一个相当简单的Inversion-Of-Control框架,与Spring不同,它是一个相当不错的ORM形式的JPA(Java Persistence API.)我使用过EJB 3.0并且实际上很喜欢它.您可以像使用Spring一样争论EJB 3.0的使用,此外它还有一些更高级或企业级的功能.