JNDI介绍之 Naming Package

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

JNDI介绍之 Naming Package 2005-6-15 13:49:47

JNDI是一组API,它通过java语言为应用程序提供命名(naming)和目录(directory)功能。它被定义成独立于任何特定的目录服务实现。因此各种不同的目录服务可以通过通用的方法被访问

Architecture

JNDI由一组API和SPI(service provider interface)组成。java程序通过JNDI API访问各种naming和directory服务。SPI使各种naming和directory服务的实现透明地插件化从而使java程序访问它所提供的服务。图形描述如下:

JNDI包包含在jdk1.3及以后的版本中.为使用JNDI,你需要JNDI classes和一个或多个服务提供者(service providers).jdk1.3包含三个service providers:

·LDAP(Lightweight Directory Access Protocol)

·COS(CORBA Common Object Services name service)

·RMI(Java Remote Method Invocation Registry)

其它的service providers可以从这里获得

JNDI被分为以下5个包:

·javax.naming

·javax.naming.directory

·javax.naming.event

·javax.naming.ldap

·javax.naming.spi

/*************************************************************/

naming package

提供用于访问命名服务的类和接口

·Context上下文

用于查询、绑定/反绑定、重命名对象和创建与销毁子上下文(subContext)

·Names名字

在Context接口中每一个命名方法都有2个重载:一个接受Name参数一个接受java.lang.Sting。Name是一个用于表示泛化的"名字"的接口.因此在Context接口中,一个Name参数是代表合成名字的CompositeName的实例,因此你可以用可以横越不同命名空间的名字来命名一个对象.其他类型的Name参数代表复合的名字.接受Name参数的重载对需要操作名字的应用很有用:组合他们,比较组件等等.

java.lang.Sting的名字参数表示一个合成的名字,这个参数对简单的应用程序来说看起来更有用,比如仅读和查询符合的对象

·Binding绑定

listBindings()返回一个代表名字-对象对的bindings的enumeration.每一个binding由Binding类的一个实例来表示

list()类似listBindings(),但它返回的是NameClassPair的enumeration. NameClassPair包含对象的名字和对象的类的名字.list()对于那些浏览性的应用程序很有用--想知道对象所限的上下文内容但并不需要实际的对象.虽然listBindings()提供所有的相同的信息,但是显然它的代价是高昂的.

·References

对象以不用的方式存储在naming和directory服务中.一个服务支持java对象存储也许支持以序列化的形式存储对象,然而另一些naming和directory服务不支持java对象存储.此外对于在目录中的一些对象,java程序只是访问它们的一组应用.这种情况下一个序列化的java对象也许不是一个适当的表示形式.一个reference或许是一个简洁的对象表示方法,尽管它的序列化形式或许包含了更多的状态

JNDI定义Reference来表示reference.一个reference包含了构造一个java对象的信息.JNDI试图从目录中查询出的reference转化成java对象从而使JNDI客户端明白在目录中存储的java对象到底是什么.

·The Initial Context

在JNDI中,所有的naming和directory操作都在相关的上下文环境下被执行.没有绝对根结点.但是JNDI定义了一个初始上下文-- InitialContext,它提供用于naming和directory操作的开始点.一旦你拥有了初始上下文,你可以用它来查询其他的上下文和对象.

·Exceptions

JNDI定义了一系列的exception用于JNDI操作的异常处理.这些层次结构的根结点是 NamingException

/*Jay all right reserved.转载请注明出处*/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有