当前位置: 技术文章>> 100道Java面试题之-什么是Java中的EJB(Enterprise JavaBeans)?它有哪些类型?
文章标题:100道Java面试题之-什么是Java中的EJB(Enterprise JavaBeans)?它有哪些类型?
### Java中的EJB(Enterprise JavaBeans)
EJB(Enterprise JavaBeans)是Java平台上用于开发企业级应用程序的一种服务器端组件模型。它是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化和加速企业级应用程序的开发。EJB提供了一种分布式对象编程模型,允许开发者创建可在分布式环境中运行的可重用组件。
#### EJB的主要特点
* **分布式计算**:EJB支持分布式计算,允许应用组件在不同的服务器上运行,通过网络进行通信和交互。
* **事务管理**:EJB提供了事务管理机制,确保数据的一致性和完整性。
* **安全性**:EJB集成了安全特性,支持对访问控制和身份验证的需求。
* **持久性**:EJB可以管理数据的持久化,将业务数据存储在数据库中。
* **容器管理**:EJB容器提供了一系列基本服务,如事务管理、安全性、持久性和并发性控制。
#### EJB的类型
根据特性和用途的不同,EJB可以分为以下三种类型:
1. **Session Bean(会话Bean)**
- 用于实现服务器端的业务逻辑,同时协调Bean之间的交互。
- 分为无状态(Stateless)和有状态(Stateful)两种。Stateless Session Bean在方法调用期间不维护任何状态,可以被多个客户共享;Stateful Session Bean则可以记录客户应用请求的状态,但不能被共享。
- 在Java EE 6及以后版本中,还引入了单例会话Bean(Singleton Session Bean),它提供了一种在整个应用中只创建一个实例的Bean类型。
2. **Entity Bean(实体Bean)**
- 主要是资料组件,代表数据库中的记录,与数据库中的数据有着相同的生存周期。
- 分为容器管理持久性(CMP)和Bean管理持久性(BMP)两种数据持久化处理方式。CMP的数据库操作由容器自动完成,而BMP的数据库操作则需要开发人员自行编写代码。
- 注意:在Java EE 6之后,Entity Bean已经不再被推荐使用,因为Java Persistence API(JPA)提供了更为灵活和标准的持久化方案。
3. **Message Driven Bean(消息驱动Bean)**
- 用于处理异步消息,一般不是由用户直接调用的。
- 当有异步消息发送到某个Message Driven Bean后,容器会负责调用其OnMessage()方法来处理这个异步请求。
### 结论
EJB是Java EE规范中用于开发企业级应用程序的重要组件模型,它提供了分布式计算、事务管理、安全性和持久性等核心特性。通过不同类型的EJB,开发者可以灵活地构建出高效、稳定、安全的企业级应用程序。然而,随着技术的发展,部分EJB类型(如Entity Bean)已经逐渐被新的技术和规范所取代。