为什么Spring Bean能够在Tomcat Servlet容器中运行而EJB却不能运行?

问题描述 投票:1回答:1

很多Web资源都说Spring Bean与EJB类似。 Spring bean也可以作为EJB通过@Component,@ Bean和@Service来定义逻辑。

但是EJB不能像Tomcat一样在servlet容器中运行。

EJB和Spring Beans之间的关键区别是什么?

java spring java-ee ejb javabeans
1个回答
2
投票

关于Spring bean和EJB之间的区别是什么,而不是前面提到的如何管理。

纯EJBean或Spring bean本身没有任何特殊的魔法或功能。相关功能是在运行bean的环境中实现的。

当您在Tomcat中运行Spring应用程序时,实际上是从Spring框架运行一堆东西,这使得Spring bean工作,不仅是bean,还有许多其他代码也会使服务和组件的自动装配等发生。

但是,当您使用EJB实现JavaEE时,您部署的所有内容都只包含您的业务代码和bean,而不像Spring那样包含管理逻辑。

所以EJB / JavaEE需要单独管理这些东西,这就是为什么普通的Tomcat对EJB来说还不够。例如,您需要一个运行EJB的J2EE容器 - TomEE,它是具有Tomcat OpenEJB的扩展,或者查看Certified referencing runtimes列表(位于Wikipage后面链接的中间)。

另见thisthis或多或少相关。

© www.soinside.com 2019 - 2024. All rights reserved.