JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
用途
命名或
目录服务使用户可以
集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在
目录服务中,以便被与打印机有关的应用使用。
我们大家每天都不知不觉地使用了命名服务。命名系统中的
对象可以是
DNS记录中的名称、
应用服务器中的EJB组件(Enterprise JavaBeans Component)、
LDAP(Lightweight Directory Access Protocol)中的用户Profile。
目录服务是命名服务的自然扩展。两者之间的关键差别是
目录服务中
对象可以有属性(例如,用户有email地址),而命名服务中对象没有属性。因此,在
目录服务中,你可以根据属性搜索
对象。JNDI允许你访问文件系统中的文件,定位远程RMI注册的
对象,访问像LDAP这样的
目录服务,定位网络上的EJB组件。
对于象LDAP
客户端、应用
launcher、类浏览器、网络管理实用程序,甚至地址薄这样的应用来说,JNDI是一个很好的选择。