离弦之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的技术天空 阅读(320) 评论(0)  编辑  收藏 所属分类: J2EE

只有注册用户登录后才能发表评论。


网站导航: