曾记得在做机房收费系统的时候就接触到了API,由于它的功能非常强大,可是自己对它却不怎么了解。所以当时是又爱又怕。现在,一路走来才明确,事实上它就是一组接口。仅仅要我们去了解它就会发现。它事实上也没想的那么可怕。

今天我们来看一下java中的接口——JNDI。

概念

Java命名和文件夹接口(Java Naming and Directory Interface,JNDI)是用于从Java应用程序中訪问名称和文件夹服务的一组API。命名服务即将名称与对象相关联。以便能通过对应名称訪问这些对象。而文件夹服务即其对象具有属性及名称的命名服务。

命名或文件夹服务同意您集中管理共享信息的存储,这在网络应用程序中非常重要,由于它能够使这类应用程序更加一致和易于管理。比如,能够将打印机配置存储在文件夹服务中,这样全部与打印机相关的应用程序都能够使用它。

作用

J2EE 规范要求全部 J2EE 容器都要提供 JNDI 规范的实现。JNDI 在 J2EE中的角色就是“交换机” —— J2EE 组件在执行时间接地查找其它组件、资源或服务的通用机制。

在多数情况下,提供 JNDI供应者的容器能够充当有限的数据存储。这样管理员就能够设置应用程序的执行属性,并让其它应用程序引用这些属性(Java 管理扩展(Java Management Extensions,JMX)也能够用作这个目的)。JNDI 在 J2EE 应用程序中的主要角色就是提供间接层,这样组件就能够发现所须要的资源。而不用了解这些间接性。

在 J2EE 中。JNDI 是把 J2EE 应用程序合在一起的粘合剂,JNDI提供的间接寻址同意跨企业交付可伸缩的、功能强大且非常灵活的应用程序。这是 J2EE 的承诺。并且经过一些计划和预先考虑,这个承诺是全然能够实现的。

PS:JNDI避免了程序与数据库之间的紧耦合,使应用更加易于配置、易于部署。

架构

JNDI架构提供了一个标准的、与命名系统无关的API,这个API构建在特定于命名系统的驱动程序之上。这一层帮助把应用程序和实际的数据源隔离开来。因此不管应用程序是訪问LDAP、RMI、DNS还是其它的文件夹服务,这都没有关系。

换句话说,JNDI与不论什么特定的文件夹服务实现无关。您能够使用不论什么文件夹,仅仅要您拥有对应的服务提供程序接口(或驱动程序)就可以,如图下图所看到的。

注意,关于JNDI有一点非常重要,即它同一时候提供应用程序编程接口(Application Programming Interface ,API)和服务提供程序接口(Service Provider Interface 。SPI)。这样做的实际意义在于,对于您的与命名或文件夹服务交互的应用程序来说。必须存在用于该服务的一个JNDI服务提供程序,这便是JNDI SPI发挥作用的舞台。一个服务提供程序基本上就是一组类,这些类针对特定的命名和文件夹服务实现了各种JNDI接口——这与JDBC驱动程序针对特定的数据系统实现各种JDBC接口极为类似。作为一名应用程序开发者。您不须要操心JNDI SPI.。

您仅仅需确保。您为每一个想使用的命名或文件夹服务提供了一个服务提供程序。

总结

1、JNDI 提出的目的是为了解藕。是为了开发更加easy维护。easy扩展,easy部署的应用。

2、JNDI 是一个sun提出的一个规范(类似于jdbc),详细的实现是各个j2ee容器提供商,sun 仅仅是要求。j2ee容器必须有JNDI这种功能。

3、JNDI 在j2ee系统中的角色是“交换机”,是J2EE组件在执行时间接地查找其它组件、资源或服务的通用机制。

4、JNDI 是通过资源的名字来查找的,资源的名字在整个j2ee应用中(j2ee容器中)是唯一的。

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

Java学习——何为JNDI的更多相关文章

  1. Java学习路线图,专为新手定制的Java学习计划建议

    怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:    首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  2. 关于JAVA学习计划和感想

    学习计划第一阶段:    JAVA语言基础知识.包括异常.IO流.多线程.集合类.    要求:异常------掌握try-catch-finally的使用          IO流------掌握字 ...

  3. 转:Java学习路线图,专为新手定制的Java学习计划建议

    转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...

  4. 转:Java学习路线图

    作者: nuanyangyang 标  题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内   [以下肯定是不完整的列表, ...

  5. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  6. 新手如何学习java(java学习建议路线图)

    怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:     首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA). ...

  7. java学习书籍推荐

    1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...

  8. Java学习路线图,Java学习计划建议

    怎么学习Java,这是很多新手经常遇到的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:     首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  9. Java学习之路(转)

    Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

随机推荐

  1. 基于visual Studio2013解决C语言竞赛题之0204实数求值

     题目

  2. HDU_1003Max Sum 简单动归

    以前做过这道题目,那是还不懂状态方程.乱搞一气: #include<cstdio> #include<algorithm> using namespace std; +; in ...

  3. 常用的shell命令整理

    工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {}   获取当前所在目录的名称 2.ps -ef|grep -w   ...

  4. B站开源播放框架ijkplayer(iOS版)使用教程

    最近在关注直播这块儿,开始时直接用ffmpeg写了一个,写得比较烂,卡顿很严重,后来听说了B站开源播放框架ijkplayer,于是就去试试看这是链接 ,一用之下果然不错,逢人便向人安利,可总是有部分同 ...

  5. java笔记之数据类型

    java中一句连续的字符不能分开在两行中书写,如国太长可用“+”将这两个字符串连起来 文档注释是以“/**”开头,并在注释内容末尾以“*/”结束. 文档注释是对代码的解释说明,可以使用javadoc命 ...

  6. 外设:K9F2G08 nandflash 底层读写、控制驱动程序,可随机读写

    /****************************************************************************** Copyright (C), 2001- ...

  7. [原]详解如何将cocos2dx项目编译到Android平台上的(方式一:Cywin+NDK)

    链接地址:http://m.blog.csdn.net/blog/yhc13429826359/29357815 2014-6-8阅读578 评论0 前言:cocos2dx作为一个开源的移动2D游戏框 ...

  8. ajaxfileupload.js 文件上传

    一,前台代码. <input id="fileToUpload" type="file" size="25" name="f ...

  9. Markdown 11 种基础语法

    现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式: 第一种: ...

  10. 乐观锁&悲观锁

    悲观&乐观,只是对数据加锁的时机与粒度. 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这 ...