情景
如果您必须从头开始重写系统,您会再次使用EJB吗?
No:不要回答这个问题,而是回答this one。
是:根据您的个人经验,提供EJB解决的一个重要的、真正的问题。
让答案只包含一个问题。这将让其他读者选择EJB的最佳特性。
发布于 2008-09-19 21:18:50
我认为这取决于您所说的EJB的哪个版本。让我们讨论仅有的两个相关版本(IMO)。
EJB2.1可能仍然被遗留系统中的一些人使用。作为RPC抽象,它们确实有最多的用途。他们还提供了一个基本的ORM (对象-关系映射)系统。正如您所提到的,提供了事务支持。因此,如果您正在构建一个希望与远程系统通信、传输面向对象的数据并进行事务处理的系统,您可能会发现EJB是值得的。否则,我会说离远点。
然而,EJB3.0已经得到了很大的改进。它具有上一版本的所有特性,但以一种更直接的方式进行。它还提供了一个与Spring类似的相当简单的控制反转框架,并以JPA ()的形式提供了一个相当不错的ORM。我曾经使用过EJB3.0,实际上我很喜欢它。您可以主张使用EJB3.0,就像Spring一样,而且它还有一些更高级或企业级的特性可用。
发布于 2008-09-19 21:02:13
这实际上取决于我们所讨论的EJB。我想说的是,即使在现在,MDB仍然是有用的。对于实体bean和会话bean,您肯定可以找到一种更好的方法。也许我仍然喜欢EJB中的一个特性是可伸缩性。如果需要,可以使用“远程”选项将EJB部署到不同的服务器。然而,我不认为这是真正必要的,我只看到一个巨大的项目,它是真正有用的。
发布于 2008-09-19 21:42:26
过去使用EJB2.1做了很多工作,很高兴把它抛在脑后。
EJB值命题对于3.0来说仍然是正确的,并且带有一个很好的轻量级编程模型。事务管理、并发性、数据版本控制、状态管理,这些都是需要正确解决的重要问题,Java框架继续做得很出色。
诚然,我使用Hibernate和Seam来进一步构建一些Java特性,所以严格地说EJB3.0本身就是麦加是不公平的。然而,当开发人员完全放弃Java,转而使用Rails等更流行的东西时,我发现有太多的开发人员放弃了洗澡水。
Seam提供了一个很好的胶水框架,使程序员的工作量很低。还可以根据项目来决定EJB与POJO的区别,而不必改变编程风格。
https://stackoverflow.com/questions/105544
复制相似问题