【问题标题】:Java JNDI internalsJava JNDI 内部结构
【发布时间】:2013-01-09 23:16:30
【问题描述】:

我正在尝试了解 JNDI,但我无法深入了解。据我了解,JNDI 是一种接口,它使您能够根据某些配置从文件系统中检索对象。

我经常看到在web.xml 中定义DataSource 或在Tomcat 中定义为<Resource> 的示例。然后,Java 应用程序可以通过 initialContext 和资源定义中指定的名称获取此 DataSource obejct 实例。

但我想了解的是,在后台发生了什么? JVM 怎么知道在哪里搜索这些资源?例如,如果在 tomcat 中定义,我想它会以某种方式导出它们。但是JVM 怎么知道它应该向 Tomcat 询问它们呢?还有更多,在DataSource 的情况下,可以从JNDI 查找中检索实际对象,并从资源定义(连接字符串等)中设置参数... 什么组件设置它们? Tomcat? JVM?我很困惑……

【问题讨论】:

    标签: java datasource jndi


    【解决方案1】:

    在您的 Java 代码中使用 JNDI 资源查找可以让您的应用程序不知道配置细节,例如 SMTP 服务器的地址或数据库的用户名/密码。相反,您决定每个资源的名称,该名称必须由部署您的应用程序的人员正确配置。这种环境特定设置的分离使您的应用程序更具可移植性,这通常是一件好事。

    Tomcat 中的 JNDI 资源配置在各种 XML 文件(server.xml、web.xml、context.xml)中,详情请参阅 Tomcat 文档:http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html。当您进行 JNDI 查找时,Tomcat 服务器知道读取这些文件并将配置的对象提供给您的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多