以下文章提供了EJB与Spring的区别。首先让我们看看EJB和Spring是什么。

EJB是Enterprise Java Beans的首字母缩写。EJB是用于服务器端体系结构的Java API,用于基于组件的事务性分布式编程。EJB不仅指定了bean格式,而且定义了运行bean的容器必须提供的一组服务。因此,开发人员无需担心服务细节,例如安全性,事务支持或任何远程对象访问。要运行EJB应用程序,您需要一个应用程序服务器,即EJB容器,例如JBoss,WebLogic,WebSphere等。Java Spring是一个轻量级的开源框架,它为各种框架(如Hibernate,EJB,JSF,Tapestry等)提供支持。Spring框架具有分层的结构,它使您可以在开发开始时选择所需的组件。Spring框架提供了许多功能,例如控制反转(IOC),面向方面(AOP),事务管理,JDBC异常处理等,使开发人员可以专注于业务需求而不是应用程序的体系结构细节。

EJB和Spring之间的主要区别。
让我们讨论EJB与Spring之间的一些主要区别。

EJB与Spring之间的主要区别在于EJB是Java EE的规范,而Spring是框架或实现。
EJB是用于事务性,基于组件的编程的体系结构。对于Java开发人员而言,它使服务器端开发更加容易。Spring框架是一个Java平台,为开发Java应用程序提供支持。该框架处理基础结构配置,并使开发人员专注于业务需求。

EJB架构
EJB框架将业务逻辑与底层细节分开,以便开发人员可以专注于业务需求。与使用大量SQL查询的旧系统不同,EJB体系结构不直接使用SQL查询,而是使用模型-视图-控制器设计模式,其中查询被包装在EJB容器内,以便可以通过EJB的数据来评估数据。 。
在应用程序的中心有一个EJB容器,它管理一组企业bean。该bean负责管理与后端数据库系统(通常是关系数据库)的连接。如您所知,在Spring框架中,这是通过数据访问或集成模块来解决的。
在EJB中,Web容器使用JSP访问EJB Bean,它将JSP转换为HTML,然后将HTML提供给浏览器。在Spring中,这是由Web模块处理的。
在EJB中,中间层(即企业Bean)充当各种系统(如关系数据库)的包装。企业bean有两种类型,即实体bean和会话bean。从较高的角度来看,会话bean代表活动,而实体bean代表应用程序的实体。实体bean是存储在诸如数据库之类的存储系统中的持久对象。与Spring相反,该框架使用Web容器进行会话管理。

spring架构
Spring框架具有大约20个模块,并提供各种功能。这些模块在逻辑上分为数据访问/集成,Web,AOP,Aspects,Instrumentation,Core容器和测试。
核心容器由核心,bean,上下文和表达式语言模块组成。核心和Bean模块提供了IoC和依赖注入等功能。
数据访问/集成层提供了诸如JDBC,JMS,ORM,OXM等事务模块。JDBC模块提供了JDBC抽象层,从而无需对与数据库建立连接所需的配置代码进行编码。
ORM模块支持一些流行的对象关系映射API,例如JPA,Hibernate。与仅支持JPA的EJB不同。
Web层由Web-Struts,Web-Servlet和Web-Portlet模块组成。Web Servlet模块包含用于Web应用程序的Spring的MVC实现。它在Web表单和业务逻辑层之间提供了清晰的分隔。
Spring AOP模块提供了AOP Alliance兼容的面向方面的编程,可让您定义方法拦截器以彻底分离功能。
测试模块提供对JUnit或TestNG的支持。