Tutorial EJB - Stateless & Stateful Session Bean : 无状态与有状态会话Bean

Stateless Bean

无状态的会话 Bean 是一种企业 Bean,他通常被用于执行独立操作。顾名思义,他与客户端状态无关,但是他可能会保留他的实例状态。EJB 容器通常创建一个含有几个无状态 Bean 的池(pool),并且用这些对象来处理客户端的请求。因为这个池,实例变量的值不能被保证进行同样的方法调用。

创建一个无状态 Bean 的步骤:

1. 创建一个 Remote/Local 的接口来表示业务方法;

2. 这个接口要通过 EJB 客户端应用来使用;

3. 使用 @Local 注解,当EJB客户端与要被部署的EJB会话Bean在同一环境中时;

4. 使用 @Remote 注解,当EJB客户端与要被部署的EJB会话Bean不在同一环境中时;

5. 创建一个实现以上接口的无状态的会话 Bean;

6. 使用 @Stateless 注解来表示这是一个无状态的会话 Bean,EJB 容器就会在部署时通过这个注解自动的创建所需的相关的配置和接口。

如下图所示,这是一个叫 ExempleBean 的无状态的 Local 的会话 Bean,他有一个 hello 方法来输出一些信息:

无状态的 Local 会话 Bean

如下图所示,这是一个叫 ExempleBean 的无状态的远程 Remote 的会话 Bean:

无状态的远程会话 Bean

此外,要想使用注解,必须加入相应的包,否则会报错:

需要加入的包

Stateful Bean

有状态会话Bean也是一种企业 Bean,他保留与客户端的会话状态。也就是说,他在实例变量上与客户端保持一定的联系。EJB 容器创建了一个单独的有状态的会话 Bean 来处理客户端的每个请求。一旦请求域结束,有状态会话 Bean 会被销毁。

创建一个有状态Bean的步骤:

基本步骤与 Stateless Session Bean一样,除了他需要使用 @Stateful 注解来表示。

如下图所示,这是一个叫 StatefulBean 的有状态的 Local 的会话 Bean:

有状态的 Local 会话 Bean

如下图所示,这是一个叫 StatefulBean 的有状态的远程 Remote 的会话 Bean:

有状态的远程会话 Bean

下次预告:我将会讨论到如何把一个 Stateless Session Bean 与一个 Servlet 关联起来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标...
    michaelgong阅读 858评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,841评论 0 11
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,681评论 1 114
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139