<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://wiki.chinulture.com/index.php?action=history&amp;feed=atom&amp;title=JNDI</id>
	<title>JNDI - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.chinulture.com/index.php?action=history&amp;feed=atom&amp;title=JNDI"/>
	<link rel="alternate" type="text/html" href="https://wiki.chinulture.com/index.php?title=JNDI&amp;action=history"/>
	<updated>2026-10-21T00:12:30Z</updated>
	<subtitle>本wiki的该页面的版本历史</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.chinulture.com/index.php?title=JNDI&amp;diff=239245&amp;oldid=prev</id>
		<title>Test 32：1個修訂</title>
		<link rel="alternate" type="text/html" href="https://wiki.chinulture.com/index.php?title=JNDI&amp;diff=239245&amp;oldid=prev"/>
		<updated>2014-08-10T21:12:40Z</updated>

		<summary type="html">&lt;p&gt;1個修訂&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2014年8月10日 (日) 21:12的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;zh&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Test 32</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.chinulture.com/index.php?title=JNDI&amp;diff=239244&amp;oldid=prev</id>
		<title>2014年8月10日 (日) 21:12 Test 32</title>
		<link rel="alternate" type="text/html" href="https://wiki.chinulture.com/index.php?title=JNDI&amp;diff=239244&amp;oldid=prev"/>
		<updated>2014-08-10T21:12:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== 用途 ==&lt;br /&gt;
[[File:01300000335934123501143537966.jpg|thumb|（图）JNDI]]&lt;br /&gt;
&lt;br /&gt;
命名或[[目录服务]]使用户可以集中存储共有信息，这一点在[[网络]]应用中是重要的，因为这使得这样的应用更协调、更容易管理。例如，可以将[[打印机]]设置存储在目录服务中，以便被与打印机有关的应用使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
我们大家每天都不知不觉地使用了命名服务。例如，当在[[web浏览器]]输入URL，http://java.sun.com时，DNS(Domain Name System，域名系统)将这个符号URL名转换成通讯标识（[[IP地址]]）。命名系统中的对象可以是[[DNS]]记录中的名称、应用服务器中的[[EJB组件]](Enterprise JavaBeans Component)、[[LDAP]](Lightweight Directory Access Protocol)中的用户Profile。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[目录服务]]是命名服务的自然扩展。两者之间的关键差别是目录服务中对象可以有属性（例如，用户有[[email地址]]），而命名服务中对象没有属性。因此，在目录服务中，你可以根据属性搜索对象。JNDI允许你访问[[文件系统]]中的文件，定位远程RMI注册的对象，访问象LDAP这样的目录服务，定位[[网络]]上的[[EJB组件]]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
对于象LDAP 客户端、应用[[launcher]]、[[类浏览器]]、[[网络管理实用程序]]，甚至地址薄这样的应用来说，JNDI是一个很好的选择。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JNDI可访问的现有的目录及服务有：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DNS、XNam 、Novell目录服务、LDAP(Lightweight Directory Access Protocol 轻型目录访问协议)、 CORBA对象服务、[[文件系统]]、[[Windows XP]]/2000/NT/Me/9x的[[注册表]]、RMI、DSML v1&amp;amp;amp;v2、NIS。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 架构 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[JNDI架构]]提供了一组标准的独立于命名系统的[[API]]，这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离，因此不管应用访问的是[[LDAP]]、[[RMI]]、[[DNS]]、还是其他的[[目录服务]]。换句话说，JNDI独立于目录服务的具体实现，只要有目录的服务提供接口（或驱动），就可以使用目录。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
关于JNDI要注意的重要一点是，它提供了应用[[编程接口]](application programming interface，API)和服务提供者接口(service provider interface，SPI)。这一点的真正含义是，要让应用与命名服务或目录服务交互，必须有这个服务的JNDI服务提供者，这正是JNDI SPI发挥作用的地方。服务提供者基本上是一组类，这些类为各种具体的命名和目录服务实现了JNDI接口—很象JDBC驱动为各种具体的数据库系统实现了[[JDBC接口]]一样。作为一个应用开发者，不必操心JNDI SPI。只需要确认要使用的每一个命名或目录服务都有服务提供者。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 组件 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1、Javax.naming：包含了访问命名服务的类和接口。例如，它定义了Context接口，这是命名服务执行查询的入口。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2、Javax.naming.directory：对命名包的扩充，提供了访问目录服务的类和接口。例如，它为属性增加了新的类，提供了表示目录上下文的DirContext接口，定义了检查和更新目录对象的属性的方法。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3、Javax.naming.event：提供了对访问命名和目录服务时的时间通知的支持。例如，定义了NamingEvent类，这个类用来表示命名/目录服务产生的事件，定义了侦听NamingEvents的NamingListener接口。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4、Javax.naming.ldap：这个包提供了对LDAP 版本3扩充的操作和控制的支持，通用包javax.naming.directory没有包含这些操作和控制。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5、Javax.naming.spi：这个包提供了一个方法，通过javax.naming和有关包动态增加对访问命名和目录服务的支持。这个包是为有兴趣创建服务提供者的开发者提供的。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 优点 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''包含了大量的命名和目录服务，使用通用接口来访问不同种类的服务；'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''可以同时连接到多个命名或目录服务上；'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''建立起逻辑关联，允许把名称同Java对象或资源关联起来，而不必指导对象或资源的物理ID。'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 服务提供者 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Java 2 SDK1.3及以上的版本包含了JNDI。对于JDK 1.1和1.2也有一个标准的扩展。Java 2 SDK 1.4.x的最新版本包括了几个增强和下面的命名/目录服务提供者：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1、LDAP(Lightweight Directory Access Protocol)服务提供者&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2、CORBA COS（Common Object Request Broker Architecture Common Object Services）命名服务提供者&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3、RMI(Java Remote Method Invocation)注册服务提供者&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4、DNS(Domain Name System)服务提供者&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:技術應用]]&lt;/div&gt;</summary>
		<author><name>Test 32</name></author>
		
	</entry>
</feed>