【发布时间】:2019-03-29 09:27:00
【问题描述】:
很多网络资源都说 Spring Bean 类似于 EJB。 Spring bean 也作为 EJB 可以通过@Component、@Bean 和@Service 定义逻辑。
但是 EJB 不能在 Tomcat 这样的 servlet 容器中运行。
EJB 和 Spring Beans 的主要区别是什么?
【问题讨论】:
标签: java spring jakarta-ee ejb javabeans
很多网络资源都说 Spring Bean 类似于 EJB。 Spring bean 也作为 EJB 可以通过@Component、@Bean 和@Service 定义逻辑。
但是 EJB 不能在 Tomcat 这样的 servlet 容器中运行。
EJB 和 Spring Beans 的主要区别是什么?
【问题讨论】:
标签: java spring jakarta-ee ejb javabeans
Spring bean 和 EJB 之间的区别不是太多,而是前面提到的如何管理。
普通的 EJBean 或 Spring bean 本身没有任何特殊的魔法或功能。相关功能在bean运行的环境中实现。
当您在 Tomcat 中运行 Spring 应用程序时,实际上您从 Spring 框架中运行了一堆东西,这些东西使 Spring bean 工作,因此不仅是 bean,还有许多其他代码也使得服务和组件等的自动装配发生。
但是,当您使用 EJB 实现 JavaEE 时,您部署的所有内容仅包含您的业务代码和 bean,而不是像 Spring 那样包含管理逻辑的任何东西。
所以 EJB / JavaEE 你需要单独管理这些东西,这就是为什么普通的 Tomcat 对 EJB 来说是不够的。您需要一个 J2EE 容器 来运行您的 EJB,例如 - TomEE 是具有 OpenEJB 和 Tomcat 的扩展,或者查看 Certified referencing runtimes 列表(大约在链接后面的 Wikipage 中间)。
【讨论】: