什么是JNDI?

原创 2011年01月19日 16:03:00

JNDI全称 Java Naming and Directory Interface 
JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。 
JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。在DNS中,一个IP地址绑定一个URL。在目录服务中,一个对象名被绑定给一个对象实体。 
JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。每个上下文都提供了绑定和撤除绑定名字到某个对象的操作。JNDI使用通用的方式来暴露命名空间,即使用分层上下文以及使用相同命名语法的子上下文。 
  jndi的用途: 
1。你可以用jndi来得到object类的属性 
如:Attribute attr =directory.getAttributes(personName).get("email"); 
  String email = (String)attr.get(); 
2。你可以用jndi来搜索对象 
如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls); 
查找谁的名字叫Fox在wiz部门的员工? 
3。你可以用jndi通过naming/directory服务查询像printers和databases的对象 
如:查询  Printer 
Printer printer = (Printer)namespace.lookup(printerName); 
printer.print(document); 
4。你可以用jndi列表出命名空间的特殊级别的内容 
如: 
  NamingEnumeration list = namespace.list("o=Widget, c=US"); 
while (list.hasMore()) { 
  NameClassPair entry = (NameClassPair)list.next(); 
  display(entry.getName(), entry.getClassName()); 

以上根据jndi文档翻译的 
地址: 
http://java.sun.com/products/jndi/overview.html 
tomcat数据库连接池配置中的 
java:comp/env代表你的JVM的环境,comp=computer env=environment 


JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。 
命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用 

JNDI概述 
我们大家每天都不知不觉地使用了命名服务。例如,当你在web浏览器输入URL,http://java.sun.com时,DNS(Domain Name System,域名系统)将这个符号URL名转换成通讯标识(IP地址)。命名系统中的对象可以是DNS记录中的名称、应用服务器中的EJB组件(Enterprise JavaBeans Component)、LDAP(Lightweight Directory Access Protocol)中的用户Profile。 
目录服务是命名服务的自然扩展。两者之间的关键差别是目录服务中对象可以有属性(例如,用户有email地址),而命名服务中对象没有属性。因此,在目录服务中,你可以根据属性搜索对象。JNDI允许你访问文件系统中的文件,定位远程RMI注册的对象,访问象LDAP这样的目录服务,定位网络上的EJB组件。 
对于象LDAP 客户端、应用launcher、类浏览器、网络管理实用程序,甚至地址薄这样的应用来说,JNDI是一个很好的选择。 
JNDI架构 
JNDI架构提供了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离,因此不管应用 
访问的是LDAP、RMI、DNS、还是其他的目录服务。换句话说,JNDI独立于目录服务的具体实现,只要你有目录的服务提供接口(或驱动),你就可以使用目录。 


JNDI是一组API,它用命名/目录服务增强了网络应用。本文中的示例说明了用JNDI开发基于目录的应用是多么容易。它也说明了如何用同样的API访问不同的命名/目录服务。开发者不必学习不同的API。在某些情况下,例如,在RMI和CORBA应用中,JNDI允许你部署时才选择命名服务。 
JNDI未来将增加的功能包括:与标准的Java SASL API(JSR-28,http://jcp.org/aboutJava/communityprocess/review/jsr028/) 的集成、支持国际化域名、支持安全DNS。 
为了开始使用JNDI和LDAP,下载Sun ONE目录服务器试用版(http://wwws.sun.com/software/products/directory_srvr/home_directory.html),这个服务器支持多种语言、多种平台。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

TOMCAT7 JNDI修正版

  • 2017-09-14 13:47
  • 9.10MB
  • 下载

jndi学习经典

  • 2013-11-18 20:52
  • 751B
  • 下载

JavaWeb:Tomcat下配置数据源(JNDI)连接数据库

习惯了以硬编码的形式在程序中建立数据库连接,用完就在finally语句块中close一下就结束了。对于重视数据库连接数的应用来说,这样子做会耗费大量的时间和数据库资源,而且硬编码的形式也不甚灵活。 ...

JNDI 连接数据库

JNDI数据源的配置及使用 (2010-11-21 21:16:43)

数据源的作用 JDBC操作的步骤:   1、 加载驱动程序   2、 连接数据库   3、 操作数据库   4、 关闭数据库,释放连接  也就是说,所有的用户...

jndi所依赖的jar包

  • 2015-11-17 19:52
  • 173KB
  • 下载

Tomcat的JNDI数据源

为什么使用数据源  主要是方便管理 1 你肯定要链接数据库 2 那么你肯定要用户名和密码 3 正式的数据库和应用服务器应该是单独的人员管理,而不是开发人员 4 密码会定期修改 5...

JNDI数据库访问

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)