離弦之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

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


          網站導航:
           
          主站蜘蛛池模板: 镇雄县| 九江县| 含山县| 河北区| 曲靖市| 凤山市| 顺平县| 策勒县| 湟中县| 贡嘎县| 邻水| 武穴市| 济阳县| 兰西县| 乌什县| 弥渡县| 公主岭市| 黎平县| 铜鼓县| 桃园县| 太湖县| 内江市| 彰化县| 宝山区| 当阳市| 理塘县| 吉隆县| 类乌齐县| 黔南| 邯郸市| 吕梁市| 依安县| 榆树市| 锡林郭勒盟| 沅陵县| 霞浦县| 吉木乃县| 鸡泽县| 延川县| 尤溪县| 客服|