EJB 和 Spring 都用于开发企业应用程序。但它们之间几乎没有区别。因此,在本文中,我们试图涵盖所有这些差异。
1. 企业Java Bean (EJB):
EJB 代表企业Java Bean。它是一个服务器端软件组件,用于汇总应用程序的业务逻辑。 EJB 容器为 Web 相关软件元素提供运行时环境,包括计算机可靠性、 Java Servlet 生命周期 (JSL) 管理、事务过程和其他 Web 服务。要运行 EJB 应用程序,我们需要一个应用程序服务器,例如 Jboss、Glassfish、Weblogic、Websphere 等。它执行生命周期管理、对象池、事务处理、安全性等。 EJB 分为三种类型。
- 会话 Bean –
会话 bean 包含可由本地、远程或 web 服务客户端调用的业务逻辑。有两种类型的会话 bean:
(一世)。有状态会话 bean 和(ii)。无状态会话 bean。 - 消息驱动 Bean –
和Session Bean一样,它包含业务逻辑,但它是通过传递消息来调用的。 - 实体 Bean –
它总结了可以在数据库中持久化的状态。它已被弃用。现在,它被 JPA(Java Persistent API)取代。实体 bean 有两种类型:
(一世)。 Bean 管理的持久性和(ii)。容器管理的持久性。
2. 春天:
Spring 是一个开源轻量级框架,它允许Java EE 7 开发人员构建简单、可靠且可扩展的企业应用程序。该框架使用各种技术,例如面向切面编程 (AOP)、Plain Old Java Object (POJO) 和依赖注入 (DI),来开发企业应用程序。此框架可帮助您管理业务对象。与经典的Java框架和应用程序编程接口 (API)(例如Java数据库连接 (JDBC)、JavaServer Pages (JSP) 和Java Servlet)相比,它使 Web 应用程序的开发更加容易。 Spring 框架的特性,如控制反转 (IoC)、面向方面编程 (AOP) 和事务管理,使其在框架列表中独一无二。
EJB 和 Spring 的区别:
Properties | EJB | Spring |
---|---|---|
Specification | EJB is a specification of Java EE. | Spring is a framework. |
Dependency Injection | It can inject anything in the container including EJB Data sources, JMS Resources, and JPA Resources. | It can inject anything including list, properties, map, and JNDI resources. |
Transaction Management | It supports only JTA transaction Manager. | It supports multiple transaction manager such as JTA, JDBC, and Hibernate. |
Persistence | It tightly integrated to JPA. | It supports various persistence technologies such as JDBC, Hibernate, JPA, and iBatis. |
Messaging | It provides out of the box messaging capabilities through Message Driven Beans. | We need to add listener configuration for each message. |
Scheduling | It provides simple scheduling through EJB Time Service. | We need to add and configure Quartz for scheduling. |
Security | It supports both declarative and programmatic security through JAAS. | It provides declarative security through the Spring configuration file. |
AOP | It provides limited support through interceptors. | It provides robust support through AspectJ. |