`

有关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的规范文档

分享到:
评论

相关推荐

    jndi-1_2_1.zip_jndi_jndi-1.2.1.jar

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问和管理命名和目录服务的一组...同时,由于是开源的,开发者可以根据需求对其进行定制和扩展,而且附带的文档和示例有助于快速上手和理解JNDI的使用。

    JNDIDemo 以及相关文档

    `Untitled-1.html`可能是另一个相关文档,虽然其确切内容未知,但很可能包含有关JNDI的补充信息。 通过学习这些文档和实践`JNDIDemo`,你可以掌握JNDI的基本用法,理解其在企业级应用中的重要性,以及如何在实际...

    Tomcat中JNDI原理

    通过深入理解Tomcat中JNDI的实现原理,尤其是`ContextBinding`机制,我们可以更高效地管理和使用资源,同时增强应用的安全性和可维护性。尽管初看起来JNDI的代码可能显得冗长复杂,但这是为了提供灵活性、安全性和可...

    JNDI.rar_JINI jndi_JNDI相关书籍_jndi

    **JNDI相关书籍** 对于深入理解和应用JNDI技术至关重要。这些书籍通常会涵盖以下主题: 1. **JNDI基础**:介绍JNDI的基本概念,包括命名空间、上下文、查找和绑定操作。 2. **JNDI实现**:讲解不同类型的JNDI提供商...

    JNDI示例整合SSH

    **标题:“JNDI示例整合SSH”** 在IT领域,`JNDI`(Java Naming and Directory Interface)是...为了深入学习和实践,你可以解压并研究这些文件,结合文章链接中提供的详细教程,进一步理解JNDI在SSH框架中的应用。

    jndi所依赖的jar包

    Java Naming and Directory Interface (JNDI) 是Java平台中...总之,JNDI及其依赖的JAR包是Java开发中不可或缺的部分,尤其是在构建分布式和企业级应用时,理解和掌握JNDI的使用能极大地提高应用的可扩展性和灵活性。

    JNDI简单应用示例

    在这个压缩包文件"JNDI_Demo_0915"中,很可能包含了上述操作的代码示例,帮助开发者理解JNDI的工作原理和使用方式。通过阅读和学习这个示例,你可以掌握如何在实际项目中利用JNDI来管理和查找资源,提高代码的可维护...

    JNDI-Injection-Exploit-1.0-SNAPSHOT-all

    使用这样的工具有助于开发者理解和防范JNDI注入攻击,但同时也需谨慎,以免误用。 JNDI注入攻击的实施步骤大致如下: 1. **构造恶意JNDI引用**:攻击者创建一个指向远程服务器的JNDI URL,该URL中包含攻击者想要...

    jndi加密.zip

    为了便于理解和使用,压缩包中的"jndi加密"文件包含了具体的实现示例和使用说明。开发者可以根据提供的示例代码,结合自己的项目环境进行适配和调整。同时,需要注意的是,虽然JNDI和AES提供了一层保护,但安全工作...

    JNDI学习文档.doc

    **Java Naming and Directory Interface...以上就是JNDI的基本知识和应用场景,通过理解和使用JNDI,开发者可以构建更加灵活、可扩展和易于管理的Java应用。在实际项目中,JNDI常常是Java EE开发者不可或缺的一个工具。

    jndi用到的所有jar

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种服务提供了一个统一的接口,使得...正确理解和使用这些JNDI相关库,能够帮助开发者构建更加灵活和可扩展的企业级应用。

    配置 JNDI 数据源

    下面将详细解释配置JNDI数据源的相关知识点。 一、JNDI数据源的概念 JNDI数据源是一种在JNDI上下文中注册的数据库连接池对象,它提供了一种在多个应用之间共享数据库连接的方法。这样,每个应用都可以通过JNDI查找...

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

    在深入探讨JNDI注入与Java...随着技术的不断进步,攻击者也在不断发现新的漏洞,因此对安全研究人员和开发者而言,理解和掌握这些概念及攻击手段是非常重要的。这样,他们才能更好地保护自己的应用不受这些漏洞的威胁。

    jndi测试小项目,初学者

    这个小项目是针对初学者设计的,旨在帮助他们理解JNDI的基本概念和用法。 在Java应用中,JNDI主要用来查找和绑定资源,如数据库连接池、邮件服务器配置、EJB对象等。它通过名字服务(Naming Service)和目录服务...

    JNDI配置详细介绍

    #### 二、深入理解JNDI在Tomcat中的作用 JNDI在Tomcat中的配置不仅限于上述步骤,其真正的强大之处在于能够实现资源的集中管理和动态配置。通过JNDI,我们可以将应用程序与特定的资源实现解耦,即使资源的实现细节...

    从实例看JNDI设计

    通过理解和熟练运用JNDI,开发者可以更好地管理应用程序的资源,提高代码的灵活性和可维护性。在实际项目中,深入了解JNDI的工作原理和实践技巧,对于提升开发效率和解决复杂问题有着不可忽视的价值。

    jndi-jar.zip

    在给定的"jndi-jar.zip"压缩包中,包含了两个重要的JNDI相关的JAR文件: 1. fscontext.jar:这是Java中用于文件系统上下文的JNDI提供者。它允许开发者通过JNDI接口来操作本地文件系统。例如,你可以通过JNDI查找或...

    04_JNDI.pdf

    根据提供的文档信息,我们可以深入探讨以下几个关键的知识点: ### JNDI概述 #### 定义 JNDI(Java Naming and Directory ...通过理解其基本概念和使用方法,可以帮助开发者更好地管理和组织应用中的各种资源和服务。

    JNDI (1)

    JNDI配置文档(如`JNDI配置.doc`)可能包含如何在不同应用服务器(如Tomcat、JBoss、WebLogic等)中配置JNDI资源的详细步骤,包括设置应用服务器的配置文件、编写JNDI绑定代码以及处理相关异常等内容。这些配置对于...

Global site tag (gtag.js) - Google Analytics