是什么
前面说过了JNDI的概念
其实简单的说,java naming and directory Interface就是这样一种形式:提供命名和目录服务的API给开发者,把服务的实现留给各个厂商。而这个API提供的服务就是把名字翻译成一个对象,就像DNS服务把域名地址翻译成32位二进制IP地址一样。当然了还有一部分目录服务的功能,其实目录服务就是在命名服务的同时提供服务的查询与分类功能(对目录服务部分不理解没关系,以后再看LADP的时候就能真正理解了)
怎么用
上面提到了JNDI分API和实现两部分,API是留给开发者使用的,内容已经在jdk中给出,就在javax.naming.*包里面。而实现由不同厂商实现,其实就是各个应用服务器提供商,比如tomcat、weblogic、jetty等。通常我们使用jndi的场所就是配置数据源、JMS、EJB,而网上搜到最多的当然就是数据源的配置了。要理解JNDI并学会使用它看那些数据源的配置只会让你更迷糊,“不识庐山真面目,只缘身在此山中”。记住一句话,JNDI就是个翻译,通过一个字符串得到一个类,我们只需要配置好他们自己的关联关系,‘’什么字符串对应什么类由什么类创建就可以了‘’,配置在哪呢,各种应用服务器对我们提供这种服务的时候自然做了官方说明,举个例子tomcat(本文提到的tomcat基于tomcat6.0,据我所知7.0的配置跟6.0没区别,而5.5会有区别详细请看http://blog.csdn.net/heqingsong1/article/details/8539163):
首先,运行tomcat,保证你的tomcat的webapps目录下有docs这个默认给出的web项目。
第二,访问http://localhost:8080/docs/
第三,点击JNDI Resources链接,或者直接访问http://localhost:8080/docs/jndi-resources-howto.html
最后,这个页面介绍了JNDI在tomcat服务器中应该如何配置
至于如何把字符串翻译成你想要的对象,完全由weblogic这样的应用提供商实现。
常见的配置总结
大致总结一下网上关于数据源的JNDI配置,大致有3种,大多分3步。
第一步,配置”<Resouce 。。。 />”标签以及里面属性,这个就是我们想要通过字符串获取的对象类
第二步 ,配置web.xml文件获取相应的JNDI元素(