本文概述
- 无状态会话Bean中使用的注释
- 无状态会话Bean的生命周期
- 无状态会话Bean的示例
换句话说, 在无状态会话bean的情况下, 容器不会维护多个方法调用之间的会话状态。
EJB容器将无状态bean对象池化, 以按需服务请求。
一个客户端一次可以访问它。在并发访问的情况下, EJB容器将每个请求路由到不同的实例。
无状态会话Bean中使用的注释 无状态会话Bean中使用了3个重要的注释:
- @无状态
- @PostConstruct
- @PreDestroy
文章图片
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