wayne

          EJB3 (7)

          有狀態會話bean的開發,首先創建遠程接口:

          @Remote
          public interface HelloRemote {

              String sayHi();

              
          void init(String name);
              
              
          void remove();
              
          }

          接著開發有狀態會話bean:
          @Stateful
          public class HelloBean implements HelloRemote {
              
          private String name;
              
          private Logger log = Logger.getLogger(this.getClass().getName());
              
              
          public String sayHi() {
                  
          return "Hi " + name;
              }


              
          public void init(String name) {
                  
          this.name = name;
              }

              
              @PostConstruct
              
          public void postConstrut(){
                  log.info(
          "create " + this);
              }

              
              @PreDestroy
              
          public void preDestory(){
                  log.info(
          "destory " + this);
              }

              
              @PostActivate
              
          public void postActivate(){
                  log.info(
          "activate " + this);
              }

              
              @PrePassivate
              
          public void prePassivate(){
                  log.info(
          "passivate " + this);
              }

              
              @Remove
              
          public void remove(){
                  log.info(
          "remove " + this);
              }

          }

          @Stateful注釋表明這是一個有狀態會話bean,其他的注釋是管理會話bean的生命周期。@PostConstruct注釋表明方法將會在bean實例化并完成依賴注入后由容器調用此方法;@PreDestory注釋表示方法會在容器刪除bean實例前由容器調用;以上兩個注釋所有的EJB(包括MDB)都可以用。@PostActivate注釋表示容器在激活bean后調用此方法;@PrePassivate注釋表示容器在鈍化bean前調用此方法;以上兩個注釋是有狀態會話bean所特有。@Remove注釋也是有狀態會話bean所特有,也是用戶唯一可以能控制的生命周期方法,一旦用戶在客戶端調用此方法,容器將刪除bean實例。接著看客戶端的測試代碼:
          <%
                     InitialContext ctx 
          = new InitialContext();
                     HelloRemote helloBean 
          = (HelloRemote)ctx.lookup(HelloRemote.class.getName());
                     helloBean.init(
          "Tom");
                     out.println(helloBean.sayHi());
                     helloBean.remove();
          %>

          很簡單,只是多調用了一個remove方法。

          posted on 2008-09-13 11:14 waynemao 閱讀(189) 評論(0)  編輯  收藏 所屬分類: Java ee


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          default

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 徐州市| 黔西| 台南市| 潼南县| 榆社县| 阿克陶县| 都江堰市| 盱眙县| 罗江县| 清镇市| 乐安县| 海南省| 环江| 搜索| 盖州市| 衡南县| 陇南市| 敦煌市| 大宁县| 克东县| 龙里县| 蒲江县| 偃师市| 大余县| 黄浦区| 开封市| 广宁县| 县级市| 和平县| 莲花县| 泽库县| 长岛县| 吴忠市| 封丘县| 铁岭市| 莲花县| 镇雄县| 永靖县| 昌吉市| 阳泉市| 淄博市|