个性化阅读
专注于IT技术分析

无状态会话Bean

本文概述

无状态会话bean是仅表示业务逻辑的业务对象。它没有状态(数据)。

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

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

一个客户端一次可以访问它。在并发访问的情况下, EJB容器将每个请求路由到不同的实例。


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

无状态会话Bean中使用了3个重要的注释:

  1. @无状态
  2. @PostConstruct
  3. @PreDestroy

无状态会话Bean的生命周期

无状态会话bean只有两种状态:不存在且准备就绪。下图对此进行了解释。

无状态豆生命周期

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


无状态会话Bean的示例

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

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

1)创建无状态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
赞(0)
未经允许不得转载:srcmini » 无状态会话Bean

评论 抢沙发

评论前必须登录!