使用EmbeddedValueResolverAware讀取配置文件內容


在基於Spring獲取properties文件屬性值的時候,一般使用@Value的方式注入配置文件屬性值,但是總是需要引入這些多余的變量,有點不爽,今天研究了下,基於Spring解析@Value的方式,使用EmbeddedValueResolverAware解析配置文件,實現起來也很簡單

工具類如下:

@Component
public class PropertiesUtil implements EmbeddedValueResolverAware {

    private StringValueResolver resolver;

    @Override
    public void setEmbeddedValueResolver(StringValueResolver resolver) {
        this.resolver = resolver;
    }


    /**
     * 獲取屬性,直接傳入屬性名稱即可
     * @param key
     * @return
     */
    public String getPropertiesValue(String key) {
        StringBuilder name = new StringBuilder("${").append(key).append("}");
        return resolver.resolveStringValue(name.toString());
    }

}

使用:

@Autowired
private PropertiesUtil propertiesUtil;

String s = propertiesUtil.getPropertiesValue("test.hello");

不同於讀取靜態文件的方式,這種方式能加載類似於 test.hello = ${test.a}/${test.b}的屬性值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM