[原创]JNDI学习笔记_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2847 | 回复: 0   主题: [原创]JNDI学习笔记        下一篇 
kun.zhong
注册用户
等级:下士
经验:158
发帖:5
精华:0
注册:1970-1-1
状态:离线
发送短消息息给kun.zhong 加好友    发送短消息息给kun.zhong 发消息
发表于: IP:您无权察看 2014-10-30 14:52:12 | [全部帖] [楼主帖] 楼主

 JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.它提供了应用编程接口(API)和服务提供者接口(SPI),命名服务将名称和对象联系起来,使得我们可以用名称访问对象。

JNDI通过注册、查找JNDI服务,可以直接使用服务,而无需关心服务提供者,这样程序不至于与访问的资源耦合!

有很多产品都支持JNDI。比如LDAP,DNS,NIS,RMI和文件系统等。

在网络应用环境经常需要改变时、EJB的环境经常需要改变时或者通过数据源使用数据库连接池时,我们最好使用JNDI。但是我们不要把JNDI当成一个数据库。一个觉的错误观点就是JNDI存储了大数据结构,存在的目的和数据库差不多。实际上,JNDI存储了相对较小的数供重复查询。

一个JNDI树包含了很多结点。叶子结点称为object。非叶子结点称为context。根结点称为root context。一个叶子结点可以绑定到多个context上。JNDI通过值来存储object。如果一个object绑定到多个context上,那么JNDI会保存这个object的多个副本。修改某个副本不会影响其他的副本。

连接JNDI的两个情况:

Cnnect to jndi from a server-side object 

Context cx = new InitialContext();

Cnnect to jndi from anywhere 

weblogic.jndi.Envrionment env = new weblogic.jndi.Envrionment();

env.setProviderUrl(t3://127.0.0.1:7001);

env.setSecurityPricipal(system);

env.setSecurityCredentials(PaSsWoRd);

Context cx = env.getInitialContext():

创建subcontext:

Context subContext = cx.createSubcontext(newSubcontext);

subContext.rebind(boundObject,anobject);

subContext.close();

cx.close();

Jndi的使用。得到context后,调用lookup()方法查询。例如。cx.lookup("java:comp/env/jdbc/mydatasource"); 




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论