<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 195, comments - 34, trackbacks - 0, articles - 1

    jndi全局注冊表和enc的基本概念 zz

    Posted on 2009-03-24 10:26 小強摩羯座 閱讀(426) 評論(0)  編輯  收藏 所屬分類: Java
    jndi全局注冊表和enc的基本概念
       通俗的將jndi就是對ejb容器中所有的資源和組件進行管理的花名冊,通過該服務,可以很方便的找到希望使用的資源。當組件被部署到服務器上后,該組件就會被自動注冊到花名冊上,以便用戶使用,如果組件被卸載,花名冊上的記錄就會自動消失。
        jndi中注冊的所有的資源和組件可以被服務器內外的各種程序請求或者訪問,是一種全局性的資源!但是ejb中不同的組件通過全局性的jndi服務器形成依賴關系,則會給系統造成不穩定的因素!因此就引入了enc(ejb組件的企業名稱上下文)的概念!通過她來實現不同組件之間的引用關系!!!!
    在上一篇文章中寫到了通過標注的方式實現方向依賴注入!還以上篇為例:
    有接口:HelloWordRemote  HelloWordLocal ICal(Remote)
    而HelloWordBean實現了分別實現了他們
    另外又有了個遠程接口:
    @Remote
    public Interface MyService{
    public String helloWord();
    public int add(int a,int b);
    }
    一個類想實現這個接口并且在這個類中引用了...如下:
    @Stateless
    public class FacedServcie implements MyService{
    private HelloWordLocal myserv1;
    private ICal ical;
    .....
    ....
    }
    可以通過配置文件實現反向依賴注入:
    <ejb-jar
           xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                               http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
           version="3.0">
       <enterprise-beans>
          <session>
             <ejb-name>FacedServcie</ejb-name>
             <ejb-ref>
               <ejb-ref-name>abc1</ejb-ref-name>
               <ejb-ref-type>Session</ejb-ref-type>
               <remote>com.ICal</remote>
               <mapped-name>HelloWordBean1/remote</mapped-name>
               <injection-target>
                  <injection-target-class>
                     xiaoxiao.FacedService
                  </injection-target-class>
                  <injection-target-name>
                     ical
                  </injection-target-name>
               </injection-target>
             </ejb-ref>
    .........(對于另一個組件的配置)
          </session>
       </enterprise-beans>
    </ejb-jar>
    還可以通過檢索的方式來實現:
    @Stateless

    public class FacedServcie implements MyService{
    private HelloWordLocal myserv1;
    private ICal ical;
    public String helloWord(){
    try{
    InitialContext ctx=new InitalContext();
    ical=(ICal)ctx.lookup("java:comp/env/abc1");
    //其中java:comp/env是組件局部enc所有記錄的根路徑而abc1是在配置文件中注冊的名字!
    }catch(NamingException e){}
    if(ical!=null){
    return ical.helloWord();
    }else{
    return "error!";
    }
    }
    ....
    }
    配置文件如下:
    <ejb-jar
           xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                               http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
           version="3.0">
       <enterprise-beans>
          <session>
             <ejb-name>FacedServcie</ejb-name>
             <ejb-ref>
               <ejb-ref-name>abc1</ejb-ref-name>
               <ejb-ref-type>Session</ejb-ref-type>
               <remote>com.ICal</remote>
               <mapped-name>HelloWordBean1/remote</mapped-name>         
             </ejb-ref>
    .........(對于另一個組件的配置)
          </session>
       </enterprise-beans>
    </ejb-jar>
    本人建議使用第一種反向依賴注入的方式!
    還有其他的一些注入:如持久化單元注入,資源型注入 數據源類型的注入。。。


    主站蜘蛛池模板: 波多野结衣免费视频观看| 国产久爱免费精品视频| 国产精品免费大片| 成人伊人亚洲人综合网站222| 亚洲乱码卡一卡二卡三| 无码精品人妻一区二区三区免费看| 亚洲日韩在线中文字幕第一页| 亚洲精品无码久久久久久| 黄色片在线免费观看| 亚洲三级电影网站| 久久成人免费播放网站| 国产亚洲A∨片在线观看| 久久精品免费大片国产大片| 亚洲第一黄片大全| 久青草国产免费观看| 免费一级毛片一级毛片aa| 香蕉视频免费在线播放| 国产国产人免费人成免费视频| 婷婷亚洲综合一区二区| 国产成人在线观看免费网站| 最新亚洲人成网站在线观看| 四虎在线播放免费永久视频| 国产尤物在线视精品在亚洲| 免费国产成人午夜电影| 一级女性全黄久久生活片免费| 亚洲精品综合久久| 中文在线日本免费永久18近| 亚洲精品色午夜无码专区日韩| 久热免费在线视频| 亚洲欧洲综合在线| 免费无码黄网站在线观看| 美女无遮挡免费视频网站| 亚洲人成网站在线观看青青| 丁香花在线视频观看免费| 亚洲AV人无码综合在线观看 | 黄色网站软件app在线观看免费 | 亚洲熟女精品中文字幕| 无码国产精品一区二区免费| 亚洲欧洲精品久久| 亚洲一级免费视频| 亚洲一区无码中文字幕乱码|