springboot @ConfigurationProperties和@PropertySource的區別

springboot @ConfigurationProperties和@PropertySource區別

@ConfigurationProperties:尋找的是全局配置文件

@PropertySource:尋找的是指定的配置文件

理解裡面有一個參數 value,可以指定很多個配置文件,所以是使用一個數組{}

springboot推薦使用這種方式給容添加組件:

創建一個config包,然後在包下創建一個class

使用@bean給容器中添加組件

springboot 使用@ConfigurationProperties和@PropertySource的問題

在使用Springboot時我們經常把一些key-value的屬性值配置在

.properties配置文件中,我們想通過@Value搭配Spring EL來讀取配置文件中的值來給我們的變量賦值。

在spring1.5一下提供瞭一個類註解:

@ConfigurationProperties:

常用的兩個屬性是:

locations:指定配置文件

prefix:指定該配置文件中的某個屬性群的前綴

但是使用spring1.5時,源碼部分做瞭修改,去掉瞭locations屬性,所以另一個註解就上場啦

@PropertySource:

value:這裡指定配置文件,替代原來@ConfigurationProperties的locations

encoding:指定讀取配置文件時的編碼

這個encoding很重要,如果不指定使用默認的話很可能出現讀取亂碼的情況,我寫demo就遇到瞭,百度瞭很多解決方案都是從ide工具本身入手,根本不能解決問題,最後還是我自己看註解的源碼才發現有這個屬性的。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: