隨筆 - 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 銀河使者 閱讀(2530) 評論(0)  編輯  收藏 所屬分類: 原創ejb3JBoss

          主站蜘蛛池模板: 长寿区| 武汉市| 莎车县| 湘阴县| 梁山县| 安乡县| 彭阳县| 台州市| 台北县| 星子县| 雅安市| 积石山| 武宣县| 屏东市| 西藏| 霍州市| 外汇| 榕江县| 福贡县| 个旧市| 都江堰市| 旬邑县| 连平县| 淮南市| 西乌珠穆沁旗| 文成县| 巴彦淖尔市| 阳江市| 昌乐县| 怀来县| 宜章县| 鄂伦春自治旗| 阿合奇县| 从江县| 手游| 阿拉善右旗| 汉寿县| 乐东| 孙吴县| 嫩江县| 禹城市|