隨筆 - 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

          主站蜘蛛池模板: 沛县| 全椒县| 罗田县| 泽州县| 密山市| 米脂县| 娄底市| 镇康县| 遵化市| 赣州市| 工布江达县| 南城县| 恩平市| 府谷县| 广河县| 石屏县| 隆子县| 县级市| 宣汉县| 仙桃市| 宁陵县| 闵行区| 永清县| 平罗县| 曲松县| 夏津县| 浮山县| 靖西县| 海盐县| 图木舒克市| 蒙城县| 南溪县| 绥化市| 灵川县| 偏关县| 克山县| 林州市| 册亨县| 贡觉县| 镇远县| 紫阳县|