- 浏览: 111032 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yongliang567:
楼主,你对双重检查加锁这种单例实现方法的分析是对的,但是你既然 ...
关于单例(Singleton)模式实现方式的反思 -
xbl001529:
支持IE8吗?
[效果]JS折叠菜单
基于JNDI的应用开发
JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访 问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更轻易治理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。
本文用代码示例的方式给出了一个快速教程,使你可以开始使用JNDI.它:
l 提供了JNDI概述 l 描述了JNDI的特点 l 体验了一下用JNDI开发应用 l 表明了如何利用JNDI访问LDAP服务器,例如,Sun ONE 目录服务器 l 表明了如何利用JNDI访问J2EE服务 l 提供了示例代码,你可以将其改编为自己的应用
JNDI概述
我们大家天天都不知不觉地使用了命名服务。例如,当你在web浏览器输入URL,http://java.sun.com时,DNS(Domain Name System,域名系统)将这个符号URL名转换成通讯标识(IP地址)。命名系统中的对象可以是DNS记录中的名称、应用服务器中的EJB组件 (Enterprise JavaBeans Component)、LDAP(Lightweight Directory Access Protocol)中的用户Profile.
目录服务是命名服务的自然扩展。两者之间的要害差别是目录服务中对象可以有属性(例如,用户有email地址),而命名服务中对象没有属性。因此,在目录 服务中,你可以根据属性搜索对象。JNDI答应你访问文件系统中的文件,定位远程RMI注册的对象,访问象LDAP这样的目录服务,定位网络上的EJB组 件。
对于象LDAP 客户端、应用launcher、类浏览器、网络治理实用程序,甚至地址薄这样的应用来说,JNDI是一个很好的选择。
JNDI架构
JNDI架构提供了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离,因此不管应用访 问的是LDAP、RMI、DNS、还是其他的目录服务。换句话说,JNDI独立于目录服务的具体实现,只要你有目录的服务提供接口(或驱动),你就可以使 用目录。如图1所示。 图1:JNDI架构
关于JNDI要注重的重要一点是,它提供了应用编程接口(application programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让你的应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口?很象JDBC驱动为各种具体的数据库 系统实现了JDBC接口一样。作为一个应用开发者,你不必操心JNDI SPI.你只需要确认你要使用的每一个命名或目录服务都有服务提供者。
J2SE和JNDI
Java 2 SDK 1.3及以上的版本包含了JNDI.对于JDK 1.1和1.2也有一个标准的扩展。Java 2 SDK 1.4.x的最新版本包括了几个增强和下面的命名/目录服务提供者:
l LDAP(Lightweight Directory Access Protocol)服务提供者 l CORBA COS(Common Object Request Broker Architecture Common Object Services)命名服务提供者 l RMI(Java Remote Method Invocation)注册服务提供者 l DNS(Domain Name System)服务提供者
发表评论
-
通过spring取得国际化文件
2012-03-23 16:18 1856/* * @(#) ScheduleController ... -
java 能否做成C/S架构的,同时他能否写程序调用IE框架
2008-10-20 14:21 1008据说现在java在C/S方面 有了很大进步,想着想写个程序。通 ... -
转载 java面向对象—抽象类、接口与多继承
2008-10-20 09:49 1233有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一 ... -
JAVA命名和目录服务(JNDI)
2008-10-17 10:59 924在 J2EE 中, JNDI 的目的是用来查找 J2EE 服 ... -
JAVA里protected属性和方法的完整测试
2008-10-13 13:53 1277先说几个protected的使用原则,后面再看对应的例子。 ... -
java中中文问题
2008-10-09 13:36 8521、如果一个数据库的编码是iso8859-1的,我在java代 ... -
关于单例(Singleton)模式实现方式的反思
2008-10-06 15:57 1126大家都知道单例模式,也知道实现的方法,最近看到几个网友推荐的文 ... -
如何使用Static的变量和方法
2008-09-26 14:25 846有时你希望定义一个类 ... -
dom4j读取xml(笔记)
2008-09-26 10:20 11143Java代码 SAXReader reader ... -
关于struts的几个注意的地方 第一章
2008-09-26 10:14 729J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手 ... -
关于struts的几个注意的地方
2008-09-26 09:59 721关于struts的几个注意的 ... -
Java Vector
2008-09-09 15:32 2835Vector 类可以实现可增长的对象数组。与数组一样,它包含 ... -
Linux 文件命令精通指南
2008-07-15 10:01 942为刚接触 Linux 文件命令的初学者提供的速成教程 ... -
Java 设计模式与建模专题
2008-07-09 15:32 965http://www.ibm.com/developerwor ... -
Java并发编程基础知识片段(一)
2008-06-27 16:45 950原创 Java并发编程基础知识片段(一)收藏 Java 5并发 ... -
关于junit实现过程详细介绍
2008-04-14 16:16 942测试分类:白箱测试、黑箱测试、单元测试、集成测试、功能测试…… ... -
循序渐进学习Junit
2008-04-14 16:15 1189用JUnit可以大量减少Java ... -
JUnit入门
2008-04-14 16:14 795JUnit是一个开源的java单元测试框架。在1997年,由 ... -
Java正则表达式入门
2008-03-18 17:38 868Java中正则表达式使用方法详解: http://tech.1 ... -
Java正则表达式入门
2008-03-18 13:56 845众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字 ...
相关推荐
1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 ...
笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升应用开发的优雅性。 《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时...
这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升应用开发的优雅性。 《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时...
1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 ...
1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 ...
1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 1.3 事务管理和事务控制命令 1.3.1 ACID测试 1.3.2 SQL中的事务管理 1.4 数据库安全和数据控制语言 1.4.1 ...
14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.3.2.1. InternalResourceViewResolver 14.3.2.2. ResourceBundleViewResolver 14.4. Velocity和FreeMarker 14.4.1. ...
17.1 Java EE 5.0编程模型 17.1.1 JSF详解 17.1.2 EJB 3.0详解 17.1.3 用JSF和EJB 3.0编写Web应用程序 17.1.4 分析应用程序 17.2 用Seam改善应用程序 17.2.1 配置Seam 17.2.2 将页面...
开发你的第一个Spring Boot应用 v. 11.1. 创建POM vi. 11.2. 添加classpath依赖 vii. 11.3. 编写代码 i. 11.3.1. @RestController和@RequestMapping注解 ii. 11.3.2. @EnableAutoConfiguration注解 iii. 11.3.3. ...