无状态会话 Bean

2024 年 8 月 29 日 | 阅读 2 分钟

无状态会话 bean 是一个只代表业务逻辑的业务对象。它没有状态(数据)。

换句话说,在无状态会话 bean 的情况下,容器不维护多个方法调用之间的会话状态

无状态 bean 对象由 EJB 容器池化,以便按需服务请求。

它一次只能由一个客户端访问。如果发生并发访问,EJB 容器会将每个请求路由到不同的实例。


无状态会话 Bean 中使用的注解

无状态会话 bean 中使用了 3 个重要的注解

  1. @Stateless
  2. @PostConstruct
  3. @PreDestroy

无状态会话 Bean 的生命周期

无状态会话 bean 只有两种状态:不存在和就绪。下图对此进行了说明。

stateless bean life cycle

EJB 容器首先创建并维护会话 bean 池。 如果存在依赖注入,则调用 @PostConstruct 方法。 现在客户端调用实际的业务逻辑方法。 然后,容器调用 @PreDestory 方法(如果存在)。 现在 bean 准备好进行垃圾回收。


无状态会话 Bean 的示例

为了开发无状态 bean 应用程序,我们将使用 Eclipse IDEglassfish 3 服务器。

要创建 EJB 应用程序,您需要创建 bean 组件和 bean 客户端。

1) 创建无状态 bean 组件

要创建无状态 bean 组件,您需要创建一个远程接口和一个 bean 类。

文件:AdderImplRemote.java
文件:AdderImpl.java

2) 创建无状态 bean 客户端

无状态 bean 客户端可以是本地客户端、远程客户端或 Web 服务客户端。 在这里,我们将创建一个远程客户端。 它是基于控制台的应用程序。 在这里,我们不使用依赖注入。 依赖注入只能与基于 Web 的客户端一起使用。

文件:AdderImpl.java

输出

Output: 64