很多Web资源都说Spring Bean与EJB类似。 Spring bean也可以作为EJB通过@Component,@ Bean和@Service来定义逻辑。
但是EJB不能像Tomcat一样在servlet容器中运行。
EJB和Spring Beans之间的关键区别是什么?
关于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后面链接的中间)。