`

有关JNDI的理解

    博客分类:
  • JAVA
阅读更多

JAVA EE规范里的jndi是为了解决下面两个问题:

  • 应用程序组装者和部署者应该能够自定义应用程序业务逻辑的行为,而不需要了解应用程序的源代码。通常这将会涉及到参数值的说明,外部资源的连接等等。部署描述符提供了这样的功能。
  • 应用程序必须能够在它们的运行环境中访问资源和外部信息,而不需要知道外部信息在那个环境中怎样命名和组织。JNDI命名上下文和Java语言注解提供了这样的功能。  
拿JDBC程序为例

Dolly 的问题的解决方案是从她的应用程序中清除所有对数据存储的直接引用。没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令 —— 甚至没有数据库池或连接管理。Dolly 需要编写代码来忽略将要访问的特定外部资源,只需要知道其他人会提供使用这些外部资源所需的链接即可。这允许部署人员(任何处在这个角色的人)把数据库连接分配给 Dolly 的应用程序。Dolly 没有必要参与其中。(从数据库安全性到遵守 Sarbanes-Oxley 法案,她都没有参与进来,她这样做也有充足的业务理由。)

许多开发人员知道:代码和外部资源之间的紧密耦合是潜在的问题,但是在实践中却经常忘记角色的划分。在小型开发工作中(指的是团队规模或部署规模),即使忽视角色划分也能获得成功。(毕竟,如果应用程序只是个人的应用程序,而且您不准备依靠它,那么把应用程序锁定在特定的 PostgreSQL 实例上也挺好的。)

J2EE 规范要求所有 J2EE 容器都要提供 JNDI 规范的实现。JNDI 在 J2EE 中的角色就是“交换机” —— J2EE 组件在运行时间接地查找其他组件、资源或服务的通用机制。在多数情况下,提供 JNDI 供应者的容器可以充当有限的数据存储,这样管理员就可以设置应用程序的执行属性,并让其他应用程序引用这些属性(Java 管理扩展(Java Management Extensions,JMX)也可以用作这个目的)。JNDI 在 J2EE 应用程序中的主要角色就是提供间接层,这样组件就可以发现所需要的资源,而不用了解这些间接性。

 

以上文字引

http://www.ibm.com/developerworks/cn/java/j-jndi/

和JAVA EE6的规范文档

分享到:
评论

相关推荐

    POJO javaBean EJB JNDI 理解及区别

    POJO javaBean EJB JNDI 理解及区别

    技术专栏 _ 深入理解JNDI注入与Java反序列化漏洞利用.pdf

    技术专栏 _ 深入理解JNDI注入与Java反序列化漏洞利用 企业安全 工控安全 安全对抗 安全建设 企业安全

    jndi之fsContext ldap

    提供了使用fsContext服务器的unbind bind list lookup rename的相关例子,及ldap 连接的一个例子 jndi,就是命名服务(n:naming)和目录服务(d:directory). 命名服务:把对象映射到方便记忆的名字的机制.可以通过域名系统...

    jndi学习经典

    javaEE学习EJB的jndi,一个小代码,易于理解

    初学jndi笔记

    这理解过程中可能有一些错误,如果高手看到了我的文章希望能够替我指正,感激不尽!!! 同时也希望能从一个初学者的角度去理解一些东西为后来学习j2ee的人提供一些参考。但愿不要误导别人

    无状态会话Bean实验指导.doc

    试验目的:通过对简单无状态会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:根据EJB组件的结构体系和运行机理,编写实现显示“Hello,+班级+姓名!”的无状态会话Bean组件,并...

    金蝶容器运维指南.zip

    文档详细描述了笔者在使用金蝶容器的经过,对于金蝶容器的运维和使用具有良好的指导作用,并且,文档也阐述了JNDI的基本含义和作用。对于JNDI的理解也有很好的促进作用。

    weblogicscan

    除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。 您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束” 支持最近的CVE-2023-...

    Web应用开发j2ee教学大纲.doc

    通过本课程的学习,学生应理解J2EE开发平台的概念,掌握J2EE中的核心技术:JSP、Servlet、JDBC、会话bean、消息bean等,理解EJB、JNDI、JMS等技术。

    EJB 编程及 J2EE 系统架构和设计.pdf

    :本文阐述了J2EE 平台的所有主要技术,围绕J2EE 规范所定义的四个层次: 客户端层(Client Tier...本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助大家掌握各技术间的相互关系和重要的思想。

    EJB编程及J2EE系统框架设计.pdf

    摘要:本文阐述了J2EE 平台的所有主要技术,围绕J2EE 规范所定义的四个层次: ...本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助大家掌握各技术间的相互关系和重要的思想。

    EJB 编程及 J2EE 系统架构和设计

    API,这些技术涵盖了组件技术、 Servlets和JSP、EJB技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出 J2EE 平台技术概念理解上的一个较为清晰的完整的思路,帮助...

    EJB编程及J2EE系统架构和设计

    这些技术涵盖了组件技术、 Servlets 和JSP、EJB 技术、数据库访问、分布式通信技术(Java RMI、Java IDL、 JNDI、JMS)、安全等;本文试图给出J2EE 平台技术概念理解上的一个较为清晰 的完整的思路,帮助...

    spring in action英文版

     1.4 理解反向控制  1.4.1 依赖注入  1.4.2 IoC应用  1.4.3 企业级应用中的IoC  1.5 应用AOP  1.5.1 AOP介绍  1.5.2 AOP使用  1.5.3 企业级应用中的AOP  1.6 Spring比较  1.6.1 比较...

    java+servlet+javabean实验报告(5)

    基于MVC模式加深对模型层的理解,模型层负责实体和业务逻辑的实现。掌握如何使用JNDI从数据库连接池中获取数据源。会读取基于属性文件的配置信息,实现通用的数据库操作类,会自定义异常处理

    Hibernate实战(第2版 中文高清版)

     2.4.2 JNDI绑定的SessionFactory   2.4.3 JMX服务部署   2.5 小结   第3章 领域模型和元数据   3.1 CaveatEmptor应用程序   3.1.1 分析业务领域   3.1.2 CaveatEmptor领域模型   3.2 实现领域模型 ...

    Grails 中文参考手册

    3.3.2 JNDI数据源 3.3.3 自动数据库移植 3.4 外部配置 3.5 定义版本 4. 命令行 4.1 创建Gant脚本 4.2 可复用的Grails脚本 4.3 脚本中的事件 4.4 Ant和Maven 5. 对象关系映射(GORM) 5.1 快速指南 5.1.1 基本的CRUD ...

    Spring in Action(第2版)中文版

    1.3理解依赖注入 1.3.1依赖注入 1.3.2di应用 1.3.3企业级应用中的依赖注入 1.4应用aop 1.4.1aop介绍 1.4.2aop使用 1.5小结 第2章基本bean装配 2.1容纳你的bean 2.1.1beanfactory介绍 2.1.2使用应用上下文...

    Spring in Action(第二版 中文高清版).part2

    1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP使用 1.5 小结 第2章 基本Bean装配 2.1 容纳你的Bean 2.1.1 BeanFactory介绍 2.1.2 ...

    Spring in Action(第二版 中文高清版).part1

    1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP使用 1.5 小结 第2章 基本Bean装配 2.1 容纳你的Bean 2.1.1 BeanFactory介绍 2.1.2 ...

Global site tag (gtag.js) - Google Analytics