如果JPA不依赖于EJB,它有自己的规范。为什么我需要EJB? 没有EJB我不能做什么?
我已经阅读了以下讨论,但我真的没有指出为什么仍然需要它?
https://stackoverflow.com/questions/4464338/why-ejb-is-used-in-enterprise-applications
答案 0 :(得分:3)
以上所有答案都为问题添加了重要信息,但错过了一个关键点。 EJB体系结构的主要卖点是 分布式组件 (除了所有 其他服务,如集装箱管理,交易,安全等)。我们的想法是使业务逻辑能够在RMI / IIOP上的分布式环境中运行。虽然多年来这种建筑风格证明是坏事。对于分布式计算,有更多基于Web服务的成功架构。虽然EJB使得分布式组件看起来很容易,但它们本身就具有固有的复杂性和性能问题,并且随后会尽可能地避免使用。 Martin Fowler对这个问题的一个古老但非常有趣的解读可以在here读到,他在攻击分布式体系结构的诱惑时通常会受到EJB等人的推动。后来人们似乎已经遵循了这种智慧,避免了跳上“分布式架构”潮流的诱惑。在Java环境中,Spring框架和Rod Johnson着名的书“没有EJB的专家一对一J2EE开发”的出现标志着这一点。从那以后,人们和我这样的人从未错过过EJB: - )
P.S。为了公平对待EJB规范以及努力改进它们的人,他们在过去十年中确实取得了公平的进步,并且它们非常现代化且开发人员友好。然而,他们的“分布式”性质已经落后于优势
答案 1 :(得分:2)
EJB或企业java bean是可以由Java EE容器管理的Java类,它保证像
这样的服务是的,JPA现在不是Java EE规范的一部分。它转移到了JSE。然而在过去,实体豆提供了标准" java和关系数据库世界之间的桥梁。
没有EJB你不能做什么?我什么都不说。我的意思是你可以在没有EJB的情况下做任原因是有其他解决方案,如Spring或Guice。
与往常一样,您可以编写没有任何框架的低级代码。
答案 2 :(得分:2)
EJB只是服务于用户请求的服务器端组件。每个企业bean都在一个容器中运行,该容器代表用户/程序员进行一些维护(事务管理,安全管理,bean生命周期等)。因此,它使开发人员专注于核心工作,而不是一个人重新发明。
因此我们可以得出结论,EJB只是减少了程序员完成的编码量,让程序员专注于核心业务逻辑。
如果没有带有大量编码的EJB,我们也可以这样做。
谢谢, JK