我怀疑与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>
答案 0 :(得分:0)
我认为没有可能让占位符得到解决,因为您实例化的同一个类是负责解析属性的类。在这种情况下,$ {user.home}将无法解决,因此$ {user.home} /conf/application.properties将无法作为有效位置到达。
答案 1 :(得分:0)
如果该属性不存在它将无法工作,您可以扩展此类PropertyPlaceholderConfigurer并使用您用于扩展该类的bean,这样您就可以管理从哪里加载属性并具有控制权所有例外情况。