Spring MVC 屬性文件讀取注入到靜態字段

在項目中,有些參數需要配置到屬性文件xxx.properties中,這樣做是爲了維護方便,如果需要變動只需修改屬性文件,不需要重新編譯項目就可以了,非常方便。

而爲了使用起來方便,可以通過將屬性值注入到類的靜態字段中(static),這樣就可以用className.fieldName的方式來獲取了。

1.servlet-context.xml

 <!-- spring的屬性加載器,加載properties文件中的屬性 -->  
     <bean id="propertyConfigurer"  
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="location" value="classpath:config.properties" />  
    </bean>   
    <context:component-scan base-package="com.jykj.demo.util" /> 

注意: 這裏需要配置spring自動掃描的包名,該包下包含了需要被註解的類ConfigInfo

2. config.properties (示例屬性)

admin_id=1
default_password=888888

3.ConfigInfo (對應的配置bean)

package com.jykj.demo.util;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ConfigInfo {

    public static int admin_id;
    public static String default_password;

    //屬性配置文件
    @Value("${admin_id}")
    public void setAdmin_id(int admin_id) {
        ConfigInfo.admin_id = admin_id;
    }
    @Value("${default_password}")
    public void setDefault_password(String default_password) {
        ConfigInfo.default_password = default_password;
    }
}

注意: 這裏需要將自動生成setter的方法的修飾符static去掉,否則spring無法注入

4. 使用

在任何類中直接使用 ConfigInfo.xxx 即可方便引用,如 ConfigInfo.default_password

這個雖然簡單,但我花了很久的時間從網上找尋各種解決方案,所以有必要寫下來,這樣可以方便以後儘快找到答案不要浪費時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章