- 论坛徽章:
- 0
|
SessionBean的生命周期控制:
package com.ly;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Init;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.Remove;
import javax.ejb.Stateful;
@Stateful
public class LifeTimeTestBean implements LifeTimeTestBeanLocal {
private String name;
public LifeTimeTestBean(){
System.out.println("调用拉 构造方法...");
}
@Init //调用了初始化init方法 只能有一个 这样的方法
public void init(){
this.name="刘毅";
System.out.println("调用拉 Init.....");
}
@PostConstruct //指定为调用 构造方法后调用 可以用多个这样的方法
public void postConstruct(){
System.out.println("调用拉 PostConstruct...");
}
@PrePassivate //钝化 一个 有状态的sessionBEAN的时候调用
public void passivate(){
System.out.println("即将钝化这个sessionBean");
}
@PostActivate //新的实例被创建 从固化状态回复
public void postActivate(){
System.out.println("从钝化状态被激活拉");
}
//让 该线程 休眠11分钟 故意 让它钝化 然后 观察 钝化效果 钝化一段时间没有被回复 那么将被销毁
public void sleep() {
// TODO Auto-generated method stub
try {
Thread.currentThread().sleep(1000*60*10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Remove
public void stop() {
// TODO Auto-generated method stub
System.out.println("把bean实例 从对象池中 溢出了该对象");
}
@PreDestroy
public void destroy(){
System.out.println("即将被销毁");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
">
My JSP 'index.jsp' starting page
-->
后台打印:
09:59:31,718 INFO [STDOUT] 调用拉 构造方法...
09:59:31,718 INFO [STDOUT] 调用拉 Init.....
09:59:31,734 INFO [STDOUT] 调用拉 PostConstruct...
10:09:06,750 INFO [STDOUT] 即将钝化这个sessionBean
10:09:31,796 INFO [STDOUT] 调用拉 构造方法...
10:09:31,796 INFO [STDOUT] 从钝化状态被激活拉
10:09:31,796 INFO [STDOUT] 把bean实例 从对象池中 溢出了该对象
10:09:31,796 INFO [STDOUT] 即将被销毁
前台显示:
页面打开拉....刘毅 a
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93826/showart_1909508.html |
|