離弦之Ray

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks
                  作為j2ee小菜鳥,初次遭遇JNDI還是在大三的時候,當時學院搞j2ee實訓,我們還沒搞清楚servletJSP就依葫蘆畫瓢的搞Struts了。所以在配置mysqlds.xml的時候完全不知道在配置DataSource,現在知道這就是在使用JNDI。網上查了幾個網頁,拼拼湊湊,模模糊糊地理解了:

                  JNDI——Java Naming and Directory InterfaceTM

                 直接翻譯就是Java命名和目錄接口,實現這個接口,提供的是一個服務,這是個什么樣的服務呢?

                 首先在連接數據庫的時候(我使用的是mysqljboss4.0),我們會用到Context這個類,context是一套name-to-object的綁定,可以理解為層次或目錄,他可以包括下一層subContext。在使用命名和目錄服務時獲得initial context 是對整個名字空間操作的入口。

                 針對Datasource而言,說白了,就是給你的數據庫連接(注意,是數據庫連接Connection這個對象,不是數據庫)起個簡單易懂的名字,你在程序中直接調用這個名字,就得到這個連接的對象,而具體的生成和管理就靠服務器了。

                通常會形成一個connection pool,動態的來管理這些對象以節省資源。

                這樣,如果項目移植到其它數據庫或者服務器什么的,只要配置服務器就行了。配置比如這個連接用什么JDBC驅動啊,用戶名和密碼啊等等。程序代碼可以不作改動。這里的DataSource不一定就是數據庫連接,還可以是其它比如文件連接等等。


               其實EJB都是靠JNDI得到EJB objectreference的,具體的機理是不太了解,不過就是那個意思,初學者這樣理解應該就夠了。


              今天郁悶了半天,在jboss里面配置JNDI DataSource,想看看如果外面直接用普通的Java工程能不能連接數據庫,答案是否。后來想通了。服務器提供JNDI服務所使用的類,這個普通的工程又不知道在哪,當然搞不起來。而Web工程和EJB工程因為發布到服務器下面的目錄的,所以能使用JNDI服務。


              這是我的理解,請各位高手指點。


             至于JBoss等等服務器怎么配置,網上搜一下,有很多牛人總結的,這里就不重復了。


          posted on 2007-10-15 21:54 離弦之ray的技術天空 閱讀(328) 評論(0)  編輯  收藏 所屬分類: J2EE

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


          網站導航:
           
          主站蜘蛛池模板: 汝州市| 玛曲县| 岳西县| 韶关市| 太和县| 永胜县| 澜沧| 云林县| 滦平县| 翼城县| 太和县| 桓仁| 大港区| 怀来县| 会泽县| 建宁县| 大理市| 南阳市| 马公市| 平湖市| 玛纳斯县| 武平县| 德令哈市| 固始县| 广南县| 凉城县| 天台县| 东兴市| 哈巴河县| 逊克县| 哈尔滨市| 鹿邑县| 吉安市| 项城市| 邹城市| 龙州县| 资溪县| 敦化市| 西城区| 台湾省| 绥德县|