繁体   English   中英

Java JNDI内部

[英]Java JNDI internals

我试图了解JNDI,但我无法深入浅出。 据我了解,JNDI是使您能够基于某些配置从文件系统检索对象的接口。

当在web.xmlTomcat中将参数定义为DataSource<Resource>时,我通常会看到示例。 然后,Java应用程序可以通过initialContext并通过资源定义中指定的名称来获取此DataSource对象实例。

但是我想了解的是,背景发生了什么? JVM如何知道在哪里搜索此类资源? 例如,如果在tomcat中定义,我想它会以某种方式导出它们。 但是JVM如何知道应该向Tomcat请求它们呢? 而且,在使用DataSource情况下,可以从JNDI查找实际对象,并使用从资源定义(连接字符串等)中设置的参数进行检索...组件是否设置了它们? Tomcat JVM 我感到很困惑...

在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服务器知道读取这些文件并将配置的对象提供给应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM