原文地址:http://www.maoyupeng.com/spring-inject-properties-in-java-class.html
在許多時候,我們需要把一些全域性的引數配置到配置檔案裡面,提供給java程式使用,為了減少程式碼量及高閱讀性,理想的是把我們所需要的全域性屬性注入到類裡面,由程式程式碼直接引用.
普通引入properties方法
在spring的配置檔案applicationContext.xml
配置
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:application.properties</value>
</list>
</property>
</bean>
改進後的properties引入方法
在spring的配置檔案applicationContext.xml
配置
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath*:application.properties</value>
</list>
</property>
</bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="properties" ref="configProperties"></property>
</bean>
application.properties檔案配置內容
# 預設頭像
userDefaultHeaderUrl=http://www.maoyupeng.com/Male.png
java類的使用示例
@Controller
@RequestMapping(value = "/userController")
public class userController {
private static final Logger logger = Logger.getLogger(UserProjectController.class);
@Value("#{configProperties[`userDefaultHeaderUrl`]}")
private String userDefaultHeaderUrl;
}