为什么 Spring Bean 可以 运行 in Tomcat Servlet Container 而 EJB 不能?
Why Spring Bean is able to run in Tomcat Servlet Container but EJB not?
很多网络资源都说SpringBean类似于EJB。 Spring bean 也作为 EJB 可以通过@Component、@Bean 和@Service 定义逻辑。
但是 EJB 不能 运行 在像 Tomcat 这样的 servlet 容器中。
EJB 和 Spring Beans 之间的主要区别是什么?
Spring bean 和 EJB 之间的区别不是很多,而是前面提到的 managed。
普通 EJBeans 或 Spring beans 本身没有任何特殊的魔法或功能。相关功能在bean为运行.
的环境中实现
当你在 Tomcat 中 运行 Spring 应用程序时,你实际上 运行 一堆来自 Spring 框架的东西,使 Spring beans 工作因此,不仅是 bean,还有许多其他代码也会自动装配服务和组件等。
然而,当您使用 EJB 实现 JavaEE 时,您部署的所有内容仅包含您的业务代码和 bean,而不是像 Spring 那样具有 管理 逻辑的东西包括在内。
所以 EJB/JavaEE 你需要单独管理这些东西,这就是为什么简单的 Tomcat 对于 EJB 是不够的。您需要一个 J2EE 容器,例如您在其中 运行 您的 EJB - TomEE that is an extension having OpenEJB with Tomcat or see a list of Certified referencing runtimes(大约在 link 后面的 Wikipage 中间)。
另见this and this 或多或少相关。
很多网络资源都说SpringBean类似于EJB。 Spring bean 也作为 EJB 可以通过@Component、@Bean 和@Service 定义逻辑。
但是 EJB 不能 运行 在像 Tomcat 这样的 servlet 容器中。
EJB 和 Spring Beans 之间的主要区别是什么?
Spring bean 和 EJB 之间的区别不是很多,而是前面提到的 managed。
普通 EJBeans 或 Spring beans 本身没有任何特殊的魔法或功能。相关功能在bean为运行.
的环境中实现当你在 Tomcat 中 运行 Spring 应用程序时,你实际上 运行 一堆来自 Spring 框架的东西,使 Spring beans 工作因此,不仅是 bean,还有许多其他代码也会自动装配服务和组件等。
然而,当您使用 EJB 实现 JavaEE 时,您部署的所有内容仅包含您的业务代码和 bean,而不是像 Spring 那样具有 管理 逻辑的东西包括在内。
所以 EJB/JavaEE 你需要单独管理这些东西,这就是为什么简单的 Tomcat 对于 EJB 是不够的。您需要一个 J2EE 容器,例如您在其中 运行 您的 EJB - TomEE that is an extension having OpenEJB with Tomcat or see a list of Certified referencing runtimes(大约在 link 后面的 Wikipage 中间)。
另见this and this 或多或少相关。