隨筆 - 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方法。可以在@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)  編輯  收藏 所屬分類: 原創ejb3JBoss

          主站蜘蛛池模板: 菏泽市| 泗洪县| 高雄县| 焦作市| 廉江市| 梅州市| 黑龙江省| 鄢陵县| 娄烦县| 永安市| 大竹县| 申扎县| 青海省| 巨鹿县| 逊克县| 长岭县| 辽宁省| 伊春市| 讷河市| 疏附县| 英超| 富顺县| 正安县| 山东省| 夏邑县| 乌恰县| 京山县| 海盐县| 台中市| 龙川县| 杂多县| 松滋市| 武安市| 湘阴县| 昭苏县| 分宜县| 巩义市| 蓝山县| 武鸣县| 达日县| 新晃|