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 閱讀(190) 評論(0)  編輯  收藏 所屬分類: Java ee


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


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          default

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台中市| 甘孜县| 逊克县| 双峰县| 日土县| 托克逊县| 湾仔区| 平远县| 墨脱县| 伊宁县| 南汇区| 开鲁县| 蒙自县| 仪征市| 禹城市| 绵竹市| 凌云县| 邵阳县| 澄江县| 永城市| 平南县| 四子王旗| 扎兰屯市| 额敏县| 临沧市| 东山县| 碌曲县| 竹山县| 淮安市| 嘉黎县| 沁水县| 衡阳市| 正宁县| 鄂州市| 凤冈县| 花莲县| 赤城县| 全南县| 永兴县| 南安市| 高安市|