隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數據加載中……

          eclipse + JBoss 5 + EJB3開發指南(4):Session Bean中的注釋方法

          本文為原創,如需轉載,請注明作者和出處,謝謝!

          上一篇:eclipse + JBoss 5 + EJB3開發指南(3):使用Session Bean的本地接口

              有時需要在Session Bean中初始化和釋放一些資源。這些工作應該在SessionBean的@PostConstruct和@PreDestroy方法中進行。其中用@PostConstruct注釋的方法在SessionBean的構造方法調用之后以后EJB容器在處理完一些其他工作后調用。用@PreDestroy注釋的方法在SessionBean的對象實例被EJB容器銷毀之前調用。
              除此之外,當有狀態的SessionBean存在一定時間未被調用時,EJB容器會將該SessionBean對象鈍化(Passivate),也就是保存在硬盤中。當再次訪問時,EJB容器會激法該SessionBean。在這兩種情況下,EJB容器會分別調用SessionBean的@PrePassivate和@PostActivate方法??梢栽?#64;PrePassivate方法中將sessionbean中的資源保存或釋放,如打開的數據庫連接等。在@PostActivate方法中可以恢復相應的資源。如下面的代碼所示:

          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;
              }    
          }


          下一篇:
          eclipse + JBoss 5 + EJB3開發指南(5):使用配置文件發布Session Bean





          Android開發完全講義(第2版)(本書版權已輸出到臺灣)

          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 銀河使者 閱讀(2525) 評論(0)  編輯  收藏 所屬分類: 原創ejb3 、JBoss

          主站蜘蛛池模板: 田阳县| 潼关县| 北京市| 深圳市| 北安市| 香格里拉县| 马鞍山市| 玉环县| 太白县| 阳江市| 杭锦旗| 潼南县| 娱乐| 郴州市| 措美县| 房山区| 深泽县| 依安县| 永和县| 大连市| 磴口县| 定西市| 天峻县| 延长县| 隆回县| 德安县| 沂水县| 祁门县| 循化| 外汇| 蓝田县| 龙门县| 余姚市| 苏尼特左旗| 抚顺县| 西华县| 墨江| 武山县| 博爱县| 永靖县| 新民市|