J2EE技术(一)——JNDI

 一、JNDI基本思想

JNDI(Java Naming & Directory Interface)即java的命名和目录接口。为开发人员提供了查找和访问的各种命名和目录服务的通用、统一方式。构建在DNS,LDAP等服务之上。

命名服务提供一种绑定服务,即映射标识符到实体或对象。例如DNS——域名系统 (Domain Name System)就是一种命名服务。有了DNS,可以把容易记忆的名字www.baidu.com与IP地址202.108.22.5联系起来,在访问百度网站时只需要在地址栏中输入www.baidu.com即可。

目录服务可以简单的理解为特殊的命名服务,目录服务本质上也提供命名服务,只不过在建立名字到实体的映射时还可以设置更多的属性。

一个使用JNDI命名服务的程序可以分为四层:Java应用程序、JNDI API、JNDI命名管理器,以及不同的命名服务。对于使用命名服务的客户端而言,可以通过统一的接口访问不同的名字服务,这就是JNDI。

JNDI体系架构

 

 

通过JNDI体系结构可以看出JNDI命名服务是把RMI、CORBA、LDAP等现有命名服务进行封装,对用户提供统一的接口,大大简化了客户端使用命名服务的复杂度。

二、JNDI优点

     1、只需要学习单一的API就可以访问各种目录服务信息。

     2、将应用程序与协议和实现细节隔离开。

3、可以连接不同类型的目录服务器。

三、JNDI在J2EE应用开发中的主要用途

     1、获取Web应用程序的资源引用。

     2、获取EJB对象。

     3、获取JMS对象。

     4、获取数据源对象。

     注:不要将JNDI当做数据库使用:1、JNDI对象存储在内存中;2、访问JNDI对象与网络性能有关。

三、JNDI API包含的5个包

     1、javax.naming:包含访问命名服务的类和接口。

     2、javax.naming.event: 包含在命名服务中实现事件通知机制的类与接口。

     3、javax.naming.ldap: 包含支持LDAP v3扩展和控制的类与接口。

     4、javax.naming.spi:为服务提供商提供的接口,一般用户不会涉及。

     5、javax.naming.directory:包含访问目录服务的类与接口。

四、JNDI树

posted @ 2011-12-19 17:01  CharmingDang  阅读(135)  评论(0编辑  收藏  举报