关于spring读取*.properties文件时,我们都会在applicationContext.xml文件中加类似如下配置:
<context:property-placeholder location="classpath*:appconf/config-*.properties,file:appconf/config-*.properties"/>
那么在使用是一般都是在对应的service层通过:
@Value("${prop.value}")
private String value;这样的形式获取,没有问题,但是如果我们是在Controller层想引用properties中的值,这个时候这样的方式获取的是“${prop.value}”,对应@Value中的值,
没有做相应的解析,这时我们可以在applicationContext.xml中加入如下配置:
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>file:appconf/config-*.properties</value>
</list>
</property>
</bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="properties" ref="configProperties" />
</bean>在Controller中使用则
@Value("#{configProperties.value}")
private String value;这样就可以获取值了,具体原因要看源码怎么处理这块
本文介绍如何在Spring框架中有效读取配置文件(*.properties)。特别关注在Controller层中正确引用配置值的方法,并提供了具体的配置示例。
5496

被折叠的 条评论
为什么被折叠?



