无状态会话Bean

本文概述

  • 无状态会话Bean中使用的注释
  • 无状态会话Bean的生命周期
  • 无状态会话Bean的示例
无状态会话bean是仅表示业务逻辑的业务对象。它没有状态(数据)。
换句话说, 在无状态会话bean的情况下, 容器不会维护多个方法调用之间的会话状态。
EJB容器将无状态bean对象池化, 以按需服务请求。
一个客户端一次可以访问它。在并发访问的情况下, EJB容器将每个请求路由到不同的实例。
无状态会话Bean中使用的注释 无状态会话Bean中使用了3个重要的注释:
  1. @无状态
  2. @PostConstruct
  3. @PreDestroy
无状态会话Bean的生命周期 无状态会话bean只有两种状态:不存在且准备就绪。下图对此进行了解释。
无状态会话Bean

文章图片
EJB容器首先创建并维护会话bean池。如果调用@PostConstruct方法(如果有), 它将注入依赖项。现在, 客户端将调用实际的业务逻辑方法。然后, 容器调用@PreDestory方法(如果有)。现在, bean已准备好进行垃圾回收。
无状态会话Bean的示例 为了开发无状态bean应用程序, 我们将使用Eclipse IDE和glassfish 3服务器。
要创建EJB应用程序, 你需要创建bean组件和bean客户程序。
1)创建无状态bean组件 【无状态会话Bean】要创建无状态bean组件, 你需要创建一个远程接口和一个bean类。
文件:AdderImplRemote.java
package com.srcmini; import javax.ejb.Remote; @Remote public interface AdderImplRemote { int add(int a, int b); }

档案:AdderImpl.java
package com.srcmini; import javax.ejb.Stateless; @Stateless(mappedName="st1") public class AdderImpl implements AdderImplRemote { public int add(int a, int b){ return a+b; } }

2)创建无状态bean客户端 无状态Bean客户端可以是本地, 远程或Web服务客户端。在这里, 我们将创建远程客户端。它是基于控制台的应用程序。在这里, 我们没有使用依赖注入。依赖项注入只能与基于Web的客户端一起使用。
档案:AdderImpl.java
package com.srcmini; import javax.naming.Context; import javax.naming.InitialContext; public class Test { public static void main(String[] args)throws Exception { Context context=new InitialContext(); AdderImplRemote remote=(AdderImplRemote)context.lookup("st1"); System.out.println(remote.add(32, 32)); } }

输出量
Output: 64

    推荐阅读