当前位置: 技术文章>> 100道Java面试题之-什么是Java中的EJB(Enterprise JavaBeans)?它有哪些类型?

文章标题:100道Java面试题之-什么是Java中的EJB(Enterprise JavaBeans)?它有哪些类型?
  • 文章分类: 后端
  • 8033 阅读
### 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)已经逐渐被新的技术和规范所取代。
推荐文章