跳到主要内容

简述EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的 ?

参考答案:

EJB(Enterprise JavaBeans)是Java EE规范的一部分,用于开发分布式、可重用的和事务性的Java组件。EJB主要包括三种类型的Bean:Session Bean、Entity Bean和Message-Driven Bean(MD Bean)。

  1. Session Bean的生命周期:

    • 有状态Session Bean:这种Bean在客户端发出请求时被创建,并在客户端断开连接或事务完成时销毁。它的生命周期由客户端的访问请求和事务管理控制。
    • 无状态Session Bean:这种Bean的生命周期与有状态Session Bean有所不同,它的实例是由一个对象池管理的。当客户端发出请求时,如果对象池中有空闲的Bean实例,则直接使用该实例;如果没有,则创建一个新的实例。无状态Session Bean不受特定客户端状态的影响,因此可以在多个客户端之间共享。
  2. Entity Bean的生命周期:

    • Entity Bean通常在服务器启动时进行初始化,并随着服务器的关闭而销毁。它的生命周期由应用服务器管理,并且与特定的数据库记录相关联。当需要访问或修改数据库记录时,Entity Bean会被加载到内存中,并在完成操作后保持状态,直到下一次访问或服务器关闭。
  3. 事务管理:

    • EJB提供了两种事务管理方式:容器事务管理(CMT)和Bean管理的事务(BMT)。
      • 容器事务管理(CMT):在这种模式下,事务的管理由应用服务器容器负责。开发者只需在Bean的方法上使用相应的事务属性注解(如@TransactionAttribute),容器会根据这些注解来自动管理事务的开始、提交和回滚。这种方式简化了事务管理的复杂性,是EJB的推荐用法。
      • Bean管理的事务(BMT):在这种模式下,事务的管理由Bean自己负责。开发者需要在Bean中编写代码来显式地开始、提交和回滚事务。这种方式提供了更大的灵活性,但也需要开发者对事务管理有更深入的了解。

总的来说,EJB通过提供不同类型的Bean和灵活的事务管理方式,帮助开发者构建分布式、可重用和事务性的Java应用程序。