PropertyPlaceholderConfigurer如何加载属性文件?

时间:2014-12-05 11:05:24

标签: java spring

我怀疑与PropertyPlaceholderConfigurer有关。以下是我在application-context.xml文件中的配置。根据文档,它将首先查看{user.home} / conf目录中的application.properties。如果不存在,那么它将从classpath加载,这是真的。

现在我有一个问题,如果{user.home} / conf目录的application.properties文件中没有一个键值,但是它存在于classpath的application.properties中。那么如何识别和加载该关键值?

对不起冗长的解释。

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:application.properties</value>
                <value>file:///${user.home}/conf/application.properties</value>
            </list>
        </property>

2 个答案:

答案 0 :(得分:0)

我认为没有可能让占位符得到解决,因为您实例化的同一个类是负责解析属性的类。在这种情况下,$ {user.home}将无法解决,因此$ {user.home} /conf/application.properties将无法作为有效位置到达。

答案 1 :(得分:0)

如果该属性不存在它将无法工作,您可以扩展此类PropertyPlaceholderConfigurer并使用您用于扩展该类的bean,这样您就可以管理从哪里加载属性并具有控制权所有例外情况。