`
messi_18
  • 浏览: 96677 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JNDI总结

阅读更多
今天不知那根弦动了下,开始咬文嚼字JNDI。之所以说咬文嚼字,实在是浮于表面没有深入。权当作读书笔记。

JNDI这个东西是用来干嘛的啊?EJB,RMI-IIOP都用它来定位对象:先绑定对象到一个名字,然后再那这个名字把那个绑定的对象取出来。(写到这里,我忽然间知道我为何关注JNDI了:我是这几天一直看RMI,RMI-IIOP, EJB, CORBA, IDL这些东西来着。至于我为何看这些我也记不清了为何了。)

就是这样简单啊。好像超市门前的存储箱啊,先把包保存进去,拿到一个记着箱子号的条形码,买完东西那这个条形码一扫,东西就取出来了。我这里写的很不准确,因为忽略了细节:我拿到的包是我放进去的那个包(返回reference),还是那个包的克隆品(序列化),还是一个看起来像包的什么东西(返回的是本地构造的stub)。这里取到的东西应该是provider相关的。实际上在RMI-IIOP的场景,返回的是本地的stub的实例。

我今天所要说的是。什么是JNDI?它其实就一个API。有两部分组成,一部分是JNDI API(Java Naming and Directory Interface
Application Programming Interface),一部分是JNDI SPI(Java Naming and Directory Interface
Service Provider Interface)。前者是外观,后者是具体实现。看到provider,我想很多人就明白了十之七八。这就是plugin啊,看来JNDI是支持不同的服务的。

从这里可以看到,从jdk1.4之后,JNDI SPI包含了下面四个provider:
The LDAP Service Provider
The COS Naming Service Provider
The RMI Registry Service Provider
The DNS Service Provider

所以我们平时用JNDI的时候,都这么用的。
Hashtable<String,String> props = new Hashtable<String,String>();
		props.put("java.naming.factory.initial", "com.sun.jndi.cosnaming.CNCtxFactory");
		props.put("java.naming.provider.url", "iiop://localhost:1050");
		Context context = new InitialContext(props);
context.lookup("some service");

我们会用一系列的参数来初始化InitialContext。其实这里无疑是一个工厂模式:根据传入的java.naming.factory.initial创建不同的provider。

从一定程度上说,EJB容器也是一个JNDI service provider。只有这样我才可以通过JNDI来定位EJB啊。

总结一下:JNDI是由两部分组成的:应用程序API和provider API。前者是调用接口,后者包装了不同的服务提供者。这里再补充一句,那也得服务程序启动之后,您才能去施展JNDI啊。那服务程序是什么?就是LDAP,COS,RMI,DNS啊。
分享到:
评论

相关推荐

    java JNDI总结

    这是我平时自己总结的有关做开发时候遇到的JNDI配置相关的问题,不算多,拿出来分享一下

    JNDI技术总结

    JNDI技术总结

    JNDI学习总结(一)——JNDI数据源的配置.html

    JNDI学习总结,JNDI配置数据源,资料详细,适合初学者

    JNDI介绍和学习资料

    关于JNDI的介绍和个人总结 还请多多指教 大家来分享学习 共同进步 谢谢

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.3 Java事务处理总结 1.4 JavaBean中使用JDBC方式进行事务处理 1.5 JSP 隐式对象简介 1.6 Java解析XML的四种方法 1.7 struts1和truts2比较 1.8 Tomcat5启动流程与配置详解 1.9 HttpServlet详解 1.10 Ant使用...

    JNDI数据源配置(tomcat)

    自己总结的三种使用方式,对比来看选择最适合你的方式

    JNDI学习总结.docx

    java - 访问数据库学习 在Java开发中,使用JDBC操作数据库的步骤 数据源由来、数据源配置

    tomcat_jndi_hibernate.txt

    tomcat_jndi_hibernate 是我总结的一些关于在tomcat下配置jndi数据源的方法,我用的是oracle数据库. 配置好jndi后,用于hibernate时其中也有提到

    JAVA笔试总结 -- 非常全面

    JAVA笔试总结 非常全面 基本上囊括了Java所有常考知识点,并且每个知识点都有详细解释。 知识点主要包括: native,transient,volatile,strictfp,CMM,synchronized,java socket,压缩与解压缩,多线程,垃圾回收算法,...

    LDAP 技术总结.

    很好的LDAP资料 包括了使用jndi操作ad等

    JAVAEE基础学习总结

    WED工作原理、HTTP协议、Servlet、GET和POST提交方式的优缺点、MVC设计、连接池、JNDI、自定义异常、Log4j、EL 和 JSTL、Wed service

    揭开J2EE集群的面纱 pdf

    目录 1.前言 2.基本术语 2.1.可扩展性 2.2.高可用性 2.3.负载均衡 2.4.容错 2.5.失败转移 2.6.幂等方法 ...3.什么是J2EE集群?...4.2.4.WebLogic, WebSphere, JBoss的方案:...9.总结 10.关于作者 11.附录A:中英文对照表

    北大青鸟 accp5.0 JSPServletJavaBean复习总结

    课程目标: 掌握Servlet和会话技术 掌握基于组件的分层开发技术 掌握JSTL、EL和JavaBean 掌握JDBC的高级技术、自定义异常、JNDI查找数据源 掌握Web Services的创建、发布和调用

    JavaEE5学习笔记04-JavaMail使用总结

    JavaEE5学习笔记04-JavaMail使用总结----

    java 面试题 总结

    EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录...

    Ldap技术总结

    比较全的技术文档,免费贡献给大家,觉得好的话帮忙顶一下。

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用当中你需要下面的这些文件: /wcf/** /jpivot/** /WEB-INF/wcf/** /WEB-INF/jpivot/** /WEB-INF/lib/** 最后你还需要对比 jpivot.war 里的 web.xml ...

    J2EE,servlet,jsp等课件

    本课件是我们学习j2ee时用的教学课件,非常详细地总结了j2ee的servlet,jsp,jdbc,jndi,XML等,总共有十四讲,适合于对j2ee有初步了解的人参考

    关于java数据库基本操作

    所以,就此问题我根据平常使用总结出一些经验和大家交流一下。1、java数据库操作基本流程2、几个常用的重要技巧:·可滚动、更新的记录集·批量更新·事务处理java数据库操作基本流程:取得数据库连接-执行sql语句-处理...

Global site tag (gtag.js) - Google Analytics