java:comp / env指向哪里?

时间:2019-01-14 16:23:51

标签: spring spring-boot

我在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指向哪里?

1 个答案:

答案 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