我有一个“ applicationContext.xml”文件,其中包含以下几行:

<bean id="jdbcPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>/WEB-INF/properties/support-center.properties</value>
        </property>
</bean>


该应用程序启动正常。但是当我打电话时:

ApplicationContext ctx = new ClassPathXmlApplicationContext(“ applicationContext.xml”);

它给出了错误信息:

由以下原因导致:java.io.FileNotFoundException:类路径资源[WEB-INF / properties / support-center.properties]无法打开,因为它不存在

因此,我想如果将其更改为<value>support-center.properties</value>并将属性文件放置在与applicationContext.xml相同的目录中,它可能会找到它,但是不,整个应用程序甚至无法启动,并说无法找到support-center.properties

现在我很困惑,因为原始设置为:/WEB-INF/properties/support-center.properties
是正确的,它使用此设置启动了应用程序,但是为什么当我致电:

ctx = new ClassPathXmlApplicationContext(“ applicationContext.xml”);

找不到物业?相同的设置,可以在启动时找到,但现在要稍后。为什么呢

编辑:

多亏了答案,它可以[稍作更正]工作,应该是:

<bean id="jdbcPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value ="classpath:support-center.properties" />
</bean>

最佳答案

假设support-center.properties位于同一目录或您的类路径中
尝试使用

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value ="classpath:support-center.properties" />
</bean>

关于java - 为什么在启动时发现了相同的属性文件,但后来在Spring Java应用程序中却找不到?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25172461/

10-11 15:59