您的位置:首页 > 编程语言 > Java开发

Java命名和目录服务(JNDI)

2014-06-24 16:31 453 查看
JNDI(Java Naming and Directory Interface)既java命名和服务接口。JNDI是JAVA平台的一个标准扩展,提供了一组关于接口、类和命名空间的概念。

1.概述

在分布式系统在JNDI通常被用来获取共享的组件和资源,它使用命名和目录服务讲名称与位置、服务、信息、资源关联起来。其中的命名服务提供名称-对象的映射,目录服务提供有关对象的信息,并提供定位这些对象所需的搜索工具。

2.原理

JNDI是一种命名和目录服务,它提供一套实用命名和目录service的接口,用户可以通过它是用命名和目录服务。就像JDBC一样,JNDI提供命名服务和目录服务两部分,其最主要的功能就是讲命名和对象绑定,并对对象提供操作。

在使用JNDI之前首先需要发布服务,然后取得该服务。因此他主要包含两个操作既bind和lookup。

bind:既发布服务,他用一张哈希表来存储对象,存储对象要对规定好键值的字符串,但这通常都是由服务器开完成的。开发人员只需要往服务器中发布组件或服务即可。

lookup:既负责查找服务,开发人员可以用键值开获取服务对象。

3.ex

本例讲的是JavaWeb项目Tomact下的JNDI服务使用。

Spring数据源采用JNDI连接数据库

1.spring-config.xml

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/bbs</value>
</property>
</bean>
2.Tomcat为我们提供的绑定服务

配置context.xml
<!-- The contents of this file will be loaded for each web application -->
<Context>

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Resource name="jdbc/bbs" auth="Container" type="javax.sql.DataSource"
<span style="white-space:pre">	</span>factory="org.logicalcobwebs.proxool.ProxoolDataSource" proxool.alias="bbs"
proxool.maximum-connection-count="4" proxool.minimum-connection-count="1"
proxool.maxinum-connection-lifetime="18000000" proxool.maximum-active-time="60000"
proxool.house-keeping-sleep-time="30000"    proxool.simultaneous-build-throttle="40"
proxool.trace="true"  user="ccy" password="ccy" delegateProperties="foo=bar"
proxool.prototype-count="9"
proxool.driver-url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
proxool.driver-class="oracle.jdbc.driver.OracleDriver" />

</Context>


欢迎大家一起讨论学习!

有用的自己收!

记录与分享,让你我共成长!欢迎查看我的其他博客;我的博客地址:http://blog.csdn.net/caicongyang
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: