spring注入配置檔案屬性到java類

毛宇鵬發表於2017-02-04

原文地址: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;

    
}

相關文章