eclipse + JBoss 5 + EJB3開發(fā)指南(4):Session Bean中的注釋方法
本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!
上一篇:eclipse + JBoss 5 + EJB3開發(fā)指南(3):使用Session Bean的本地接口
有時需要在Session Bean中初始化和釋放一些資源。這些工作應(yīng)該在SessionBean的@PostConstruct和@PreDestroy方法中進行。其中用@PostConstruct注釋的方法在SessionBean的構(gòu)造方法調(diào)用之后以后EJB容器在處理完一些其他工作后調(diào)用。用@PreDestroy注釋的方法在SessionBean的對象實例被EJB容器銷毀之前調(diào)用。
除此之外,當有狀態(tài)的SessionBean存在一定時間未被調(diào)用時,EJB容器會將該SessionBean對象鈍化(Passivate),也就是保存在硬盤中。當再次訪問時,EJB容器會激法該SessionBean。在這兩種情況下,EJB容器會分別調(diào)用SessionBean的@PrePassivate和@PostActivate方法??梢栽?#64;PrePassivate方法中將sessionbean中的資源保存或釋放,如打開的數(shù)據(jù)庫連接等。在@PostActivate方法中可以恢復(fù)相應(yīng)的資源。如下面的代碼所示:
下一篇:eclipse + JBoss 5 + EJB3開發(fā)指南(5):使用配置文件發(fā)布Session Bean
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
上一篇:eclipse + JBoss 5 + EJB3開發(fā)指南(3):使用Session Bean的本地接口
有時需要在Session Bean中初始化和釋放一些資源。這些工作應(yīng)該在SessionBean的@PostConstruct和@PreDestroy方法中進行。其中用@PostConstruct注釋的方法在SessionBean的構(gòu)造方法調(diào)用之后以后EJB容器在處理完一些其他工作后調(diào)用。用@PreDestroy注釋的方法在SessionBean的對象實例被EJB容器銷毀之前調(diào)用。
除此之外,當有狀態(tài)的SessionBean存在一定時間未被調(diào)用時,EJB容器會將該SessionBean對象鈍化(Passivate),也就是保存在硬盤中。當再次訪問時,EJB容器會激法該SessionBean。在這兩種情況下,EJB容器會分別調(diào)用SessionBean的@PrePassivate和@PostActivate方法??梢栽?#64;PrePassivate方法中將sessionbean中的資源保存或釋放,如打開的數(shù)據(jù)庫連接等。在@PostActivate方法中可以恢復(fù)相應(yīng)的資源。如下面的代碼所示:
package service;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.SessionContext;
import javax.ejb.Stateful;
@Stateless
public class ShoppingCartBean implements ShoppingCart
{
private List<String> shoppingCart = new ArrayList<String>();
@Resource
private SessionContext sessionContext;
public ShoppingCartBean()
{
System.out.println("constructor:" + sessionContext);
}
@PrePassivate
public void MyPassivate()
{
System.out.println("passivate");
}
@PostConstruct
public void init()
{
System.out.println(sessionContext.getInvokedBusinessInterface());
}
@PreDestroy
public void destory()
{
System.out.println("destory");
}
@PostActivate
public void start()
{
System.out.println("start");
}
@Override
public void addCommodity(String value)
{
shoppingCart.add(value);
}
@Override
public List<String> getCommodity()
{
return shoppingCart;
}
}
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.ejb.SessionContext;
import javax.ejb.Stateful;
@Stateless
public class ShoppingCartBean implements ShoppingCart
{
private List<String> shoppingCart = new ArrayList<String>();
@Resource
private SessionContext sessionContext;
public ShoppingCartBean()
{
System.out.println("constructor:" + sessionContext);
}
@PrePassivate
public void MyPassivate()
{
System.out.println("passivate");
}
@PostConstruct
public void init()
{
System.out.println(sessionContext.getInvokedBusinessInterface());
}
@PreDestroy
public void destory()
{
System.out.println("destory");
}
@PostActivate
public void start()
{
System.out.println("start");
}
@Override
public void addCommodity(String value)
{
shoppingCart.add(value);
}
@Override
public List<String> getCommodity()
{
return shoppingCart;
}
}
下一篇:eclipse + JBoss 5 + EJB3開發(fā)指南(5):使用配置文件發(fā)布Session Bean
《Android開發(fā)完全講義(第2版)》(本書版權(quán)已輸出到臺灣)
http://product.dangdang.com/product.aspx?product_id=22741502
《Android高薪之路:Android程序員面試寶典 》http://book.360buy.com/10970314.html
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
posted on 2009-05-26 17:12 銀河使者 閱讀(2519) 評論(0) 編輯 收藏 所屬分類: 原創(chuàng) 、ejb3 、JBoss