離弦之Ray

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks
                  作為j2ee小菜鳥(niǎo),初次遭遇JNDI還是在大三的時(shí)候,當(dāng)時(shí)學(xué)院搞j2ee實(shí)訓(xùn),我們還沒(méi)搞清楚servletJSP就依葫蘆畫瓢的搞Struts了。所以在配置mysqlds.xml的時(shí)候完全不知道在配置DataSource,現(xiàn)在知道這就是在使用JNDI。網(wǎng)上查了幾個(gè)網(wǎng)頁(yè),拼拼湊湊,模模糊糊地理解了:

                  JNDI——Java Naming and Directory InterfaceTM

                 直接翻譯就是Java命名和目錄接口,實(shí)現(xiàn)這個(gè)接口,提供的是一個(gè)服務(wù),這是個(gè)什么樣的服務(wù)呢?

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

                 針對(duì)Datasource而言,說(shuō)白了,就是給你的數(shù)據(jù)庫(kù)連接(注意,是數(shù)據(jù)庫(kù)連接Connection這個(gè)對(duì)象,不是數(shù)據(jù)庫(kù))起個(gè)簡(jiǎn)單易懂的名字,你在程序中直接調(diào)用這個(gè)名字,就得到這個(gè)連接的對(duì)象,而具體的生成和管理就靠服務(wù)器了。

                通常會(huì)形成一個(gè)connection pool,動(dòng)態(tài)的來(lái)管理這些對(duì)象以節(jié)省資源。

                這樣,如果項(xiàng)目移植到其它數(shù)據(jù)庫(kù)或者服務(wù)器什么的,只要配置服務(wù)器就行了。配置比如這個(gè)連接用什么JDBC驅(qū)動(dòng)啊,用戶名和密碼啊等等。程序代碼可以不作改動(dòng)。這里的DataSource不一定就是數(shù)據(jù)庫(kù)連接,還可以是其它比如文件連接等等。


               其實(shí)EJB都是靠JNDI得到EJB objectreference的,具體的機(jī)理是不太了解,不過(guò)就是那個(gè)意思,初學(xué)者這樣理解應(yīng)該就夠了。


              今天郁悶了半天,在jboss里面配置JNDI DataSource,想看看如果外面直接用普通的Java工程能不能連接數(shù)據(jù)庫(kù),答案是否。后來(lái)想通了。服務(wù)器提供JNDI服務(wù)所使用的類,這個(gè)普通的工程又不知道在哪,當(dāng)然搞不起來(lái)。而Web工程和EJB工程因?yàn)榘l(fā)布到服務(wù)器下面的目錄的,所以能使用JNDI服務(wù)。


              這是我的理解,請(qǐng)各位高手指點(diǎn)。


             至于JBoss等等服務(wù)器怎么配置,網(wǎng)上搜一下,有很多牛人總結(jié)的,這里就不重復(fù)了。


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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 星座| 扶余县| 双城市| 新田县| 隆安县| 民乐县| 娄烦县| 社旗县| 凤冈县| 宝清县| 柳林县| 孙吴县| 桓仁| 龙里县| 资源县| 巢湖市| 北京市| 喜德县| 中西区| 息烽县| 凤台县| 沿河| 醴陵市| 香港| 郁南县| 清苑县| 绵竹市| 且末县| 玉环县| 阿勒泰市| 龙岩市| 遂溪县| 始兴县| 平昌县| 玉屏| 台湾省| 孙吴县| 兴安盟| 金湖县| 东丰县| 崇文区|