我在Spring-Boot项目的application-context.xml
中看到了这一点:
<bean id="configurationPath" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/application.properties</value>
</property>
</bean>
我想知道java:comp/env
指向哪里?
答案 0 :(得分:4)
java:comp/env
指令表示JNDI树中的根节点,您可以在其中找到当前Java EE组件的属性(在本例中为属性文件)。
每个应用程序服务器/ servlet容器都以不同的方式实现它。您应该检查应用程序服务器或Servlet容器的正式文档。我不是Spring Boot的专家,但由于它通常以嵌入式tomcat开始,因此它应该是tomcat servlet cointainer中的默认位置
此外,在tomcat servlet容器中,您可以使用<Environment>
文件的context.xml
标记对其进行定义
例如,如果您在context.xml
文件中放入:
<Environment name="myPropertiesFilesLocation" value="${catalina.home}/properties" type="java.lang.String" override="false" />
当您像这样进行JNDI搜索时,java:comp/env/myPropertiesFilesLocation
会指向${catalina.home}/properties