Spring 与 EJB 的区别?【面试题详解】

今天爱分享给大家带来Spring 与 EJB 的区别?【面试题详解】,希望能够帮助到大家。
1 提供商无关性
EJB 3.0 是一个被设计为对提供商没有依赖性的开放的标准。EJB 3.0 规范由企业 JAVA
社区的主流开源组织和厂商共同编写和支持的。EJB 3.0 框架使开发者的应用程序实现可以
独立于应用服务器。而 Spring 一直是一个非标准的技术,尽管你在任何应用服务器都上可
以使用 Spring 框架,但基于 Spring 的应用仍然被限制于 Spring 本身和在你的应用中使用到
的 Spring 提供的各种特别服务。
2 服务整合
Spring 框架是建立在应用服务器和服务库之上,它的服务整合代码(如数据访问模板和
Helper 类)是基于框架的,并暴露给应用开发者。相反,EJB 3.0 框架是紧密整合到应用服
务器中的,它的服务整合代码是封装在一个标准的接口下的。
3 服务聚合的灵活性
由于 Spring 中的服务整合代码是作为编程接口暴露给应用开发者的,因此开发人
员可以根据需要来聚合多个服务。这个特性使你可以集成一个你自己的“轻量”级应用服务
器。通常,EJB 3.0 应用服务器不提供给开发者这种按照你的需要来选择服务的灵活性。大
多数情况,你会得到一系列已经预先打包好的特性,其中有些你可能是不需要的。
4 声明式服务
EJB 3.0 和 Spring 都将运行时服务(如事务管理、安全、日志、消息、和信息服务)连
接给应用程序。由于这些服务同应用程序的业务逻辑并不是直接相关的,因此,它们不被应
用程序本身来管理。相反,这些服务被服务容器(如 EJB 3.0 和 Spring)以不可见的方式在
运行时提供给应用程序。开发人员(或系统管理员)通过配置来告诉容器什么时候,以怎样
的方式来应用这些服务。
5 注射依赖
Spring 和 EJB 3.0 都提供了大量的 DI 模式支持。但是,它们之间也有着根本的不同。
Spring 支持了通常意义上的但是复杂的基于 XML 配置文件的注射依赖 API;EJB 3.0 支持
的注射大多数通用服务对象(如,EJB 和容器对象)和 JNDI 对象,它通过简单的 JAVA 注
解来完成。

人已赞赏
Java

JDO 是什么?【面试题详解】

2020-12-10 9:43:15

Java

谈一谈SSH 框架的优缺点【面试题详解】

2020-12-10 9:44:49

'); })();