JNDI

        JNDI全名为Java Naming and Directory Interface.JNDI主要提供应用程序所需要资源上命名目录服务。在Java EE环境中,JNDI扮演了一个很重要的角色,它提供了一个接口让用户在不知道资源所在位置的情形下,取得该资源服务。就好比网络磁盘驱动器的功能一样。如果有人事先将另一台机器上的磁盘驱动器接到用户的机器上,用户在使用的时候根本就分辨不出现在的驱动器是存在本端,还是在另一端的机器上,用户只需取得资源来用,根本就不知道资源在什么地方。

JNDI基本信息

JNDI这个接口基本上是LDAP,LDAP全名为Lightweight Directory Access Protocol
JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,
为开发人员提供了 查找和访问各种 命名目录服务的通用、统一的接口,类似J DBC都是构建在抽象层上。
JNDI可访问的现有的目录及服务有:
       DNS、XNam 、Novell 目录服务、LDAP(Lightweight Directory Access Protocol 轻型目录访问协议)、 CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1&v2、NIS

JNDI优点

包含了大量的 命名目录服务,使用通用接口来访问不同种类的服务;
可以同时连接到多个 命名目录服务上;
建立起逻辑关联,允许把名称同Java对象或资源关联起来,而不必知道对象或资源的物理ID。

JNDI程序包

javax.naming: 命名操作;
javax.naming.directory:目录操作;
javax.naming.event:在 命名目录服务器中请求事件通知;
javax.naming.ldap:提供LDAP支持;
javax.naming.spi:允许动态插入不同实现。
利用JNDI的 命名与服务功能来满足企业级APIs对命名与服务的访问,
诸如EJBs、JMS、 JDBC 2.0以及IIOP上的RMI通过 JNDI来使用CORBA的 命名服务。

常用的JNDI操作

void bind(String sName,Object object);―― 绑定:把名称同对象关联的过程
void rebind(String sName,Object object);――重新 绑定:用来把对象同一个已经存在的名称重新绑定
void unbind(String sName);――释放:用来把对象从目录中释放出来
void lookup(String sName,Object object);―― 查找:返回目录总的一个对象
void rename(String sOldName,String sNewName);――
重命名:用来修改对象名称 绑定的名称
NamingEnumeration listBinding(String sName);――清单:返回 绑定在特定上下文中对象的清单列表
NamingEnumeration list(String sName);
代码示例:重新得到了名称、类名和 绑定对象。
NamingEnumeration namEnumList = ctxt.listBinding("cntxtName");
...
while ( namEnumList.hasMore() ) {
Binding bnd = (Binding) namEnumList.next();
String sObjName = bnd.getName();
String sClassName = bnd.getClassName();
SomeObject objLocal = (SomeObject) bnd.getObject();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值