JNDI学习

JNDI(Java Naming and Directory Interfaces)一组帮助做多个命名和目录服务接口的API。

基本原理   

在使用JNDI服务前,首先需求发布这个服务,然后取得该服务。因此它包含两个最主要的操作,即bind和lookup。

  • bind:发布服务,它使用一张哈希表存储对象,存储对象的时候要定义好对象的键值字符串,这通常都由Java EE服务器来实现,开发人员只需要往应用服务器中发布组建即可。例:JBoss中发布EJB。
  • lookup:负责查找对象,客户端开发人员可以使用键值来获取服务对象。
JNDI接口与服务实现
Sun只提供了JNDI接口,JDK提供的接口分布在如下5个包中。
  • javax.naming:包含了访问命名服务的类和接口。例:它定义Context接口,这是命名服务执行查询的入口。
  • javax.naming.directory:对命名包的扩充,提供了访问目录服务的类和接口。例:提供了表示目录上下文的DirContext接口,定义了检查和更新目录对象的属性的方法。
  • javax.naming.event:提供了对访问命名和目录服务时的时间通知的支持。例:NamingEvent类用来表示命名/目录服务器产生的事件,定义了侦听NamingEvents的NamingListener接口。
  • javax.naming.ldap:提供了对LDAP版本3扩充的操作和控制的支持,通用包javax.naming.directory没有包含这些操作和控制。
  • javax.naming.spi:提供了一个方法,通过javax.naming和有关包动态增加对访问命名和目录服务的支持。
JNDI的查找(JBoss)


Properties props = new Properties();
props.setProterty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProterty("java.naming.provider.url", "localhost:1099");
props.setProterty("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext ctx = new InitialContext(props);
Object obj = ctx.lookup("mycompany/JNDIService");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值