JNDI概念

来源:互联网 发布:神仙劫宠物进阶数据 编辑:程序博客网 时间:2024/05/16 06:48

当开发者在应用服务器中配置了容器管理的数据源之后,就需要通过JNDI查找来获取容器管理的数据源,接下来再通过数据源获取数据库连接,然后操作数据库里的数据。JNDI的全称是Java Naming Directory Interface,Java命名目录接口,它允许Java程序通过一个名称来访问真正的Java对象。

RMI指的是Remote Method Invoke(远程方法调用)RMIJava分布式应用编程提供了基础,RMI底层依然是依赖千Socket网络通信来实现的,但RMI对基本的Socket通信进行了包装,它允许RMI客户端直接调用远程服务器端的方法,就像调用本地的方法一样。通过使用RM技术,开发老泪;至无须理会Socket通信的细节,无须理会网络通信的输入、输出细节,无须理会服务器端和客户端通信的多线程问题……这些底层的技术细节都交给RMI去搞定,开发者可以直接调用远程Java方法,就像调用本地Java方法一样,非常方便。实际上,RMIJava EE开发非常重要. RMIJava EE分布式应用的实现基础,因此掌握RMI对于更好地理解JavaEE编程具有非常重要的意义。

当然,RMI也离不开JNDI,RM服务器希望把自己提供的远程方法暴露出来时,它就要为自己绑定一个JNDI名称,而RMI客户机则通过JNDI查找来获取远程RMI服务器,然后调用RMI服务器上的远程方法.

JNDI包含了一些标准API接口,Java程序则可以通过这些JNDI接口来访问命名目录服务。与普通命名目录服务不同的是,JNDI不依赖于任何独立的命名目录服务器,不管采用哪种命名目录服务器,应用程序都可通过统一的JNDI接口来调用。

提示:Java程序中大量地方都采用了这种类似的设计:Java为某种服务制定规范,而具体的实现则由不同的厂商自己提供实现(例如,数据库厂商提供JDBC驱动)。应用程序开发者无须理会该规范底层的实现,开发者只要面向这种规范的接口编程(例如:面向JDBC接口、JNDI接口等)即可。通过这种方式,可以消除底层服务器之间存在的差异,降低开发者的开发难度。