EJB和Spring的区别

EJB和Spring的区别

EJB和Spring都是用来开发企业应用程序的。但它们之间存在着一些差异。因此,在这篇文章中,我们试图涵盖所有这些差异。

企业Java Bean(EJB)

EJB是企业Java Bean的缩写。它是一个服务器端的软件组件,概括了一个应用程序的业务逻辑。EJB容器为网络相关的软件元素提供运行环境,包括计算机可靠性、Java Servlet生命周期(JSL)管理、交易程序和其他网络服务。为了运行一个EJB应用程序,我们需要一个应用服务器,如Jboss、Glassfish、Weblogic、Websphere等。它可以执行生命周期管理、对象池、事务处理、安全等。有三种类型的EJB:

会话Bean
会话Bean包含业务逻辑,可以被本地、远程或Webservice客户端调用。有两种类型的会话Bean:

  • 有状态的会话Bean
  • 无状态会话Bean

消息驱动的Bean
像会话Bean一样,它包含业务逻辑,但它是通过传递消息来调用的。

实体Bean
它总结了可以持久化在数据库中的状态。它已被弃用。现在,它被JPA(Java Persistent API)取代。有两种类型的实体Bean。
(i). Bean管理的持久性和(ii)。容器管理的持久性。

Spring

Spring是一个开源的轻量级框架,允许Java EE 7的开发者建立简单、可靠和可扩展的企业应用。这个框架使用各种技术,如面向方面的编程(AOP)、普通的Java对象(POJO)和依赖注入(DI),来开发企业应用。这个框架帮助你管理业务对象。与经典的Java框架和应用编程接口(API)相比,它使Web应用程序的开发变得更加容易,如Java数据库连接(JDBC)、JavaServer Pages(JSP)和Java Servlet。Spring框架的特点,如反转控制(IoC)、面向方面的编程(AOP)和事务管理,使其在框架列表中独树一帜。

EJB和Spring之间的区别:

属性 EJB Spring
规格 EJB是Java EE的一个规格。 Spring是一个框架。
依赖注入 EJB可以在容器中注入任何东西,包括EJB数据源、JMS资源和JPA资源。 Spring可以注入任何东西,包括列表、属性、地图和JNDI资源。
事务管理 EJB只支持JTA事务管理器。 Spring支持多种事务管理器,如JTA、JDBC和Hibernate。
持久性 EJB与JPA紧密集成。 Spring支持各种持久性技术,如JDBC、Hibernate、JPA和iBatis。
消息传递 EJB通过消息驱动Bean提供开箱即用的消息传递功能。 需要为每个消息添加监听器配置。
调度 EJB通过EJB时间服务提供简单的调度功能。 需要添加和配置Quartz来进行调度。
安全 EJB通过JAAS支持声明性和程序性安全。 Spring通过Spring配置文件提供声明式安全。
AOP EJB通过拦截器提供有限的支持。 Spring通过AspectJ提供强大的支持。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程