Spring讀取properties作爲map和List:
application.properties
文件中:
blog-top-links={home:"/home"}
blog-list=1,2,3
map的寫法和json差不多,但是應該不支持嵌套,沒有嘗試。
key加不加引號都可以,value加雙引號單引號都可以,但是當key中有”-“時就必須加引號,例如key爲:about-me時,就必須加引號否則解析失敗
list的寫法和數組差不多,可以自定義分隔符,在java中分割即可
配置類中:
@Component
@ConfigurationProperties
@PropertySource("properties文件路徑")
public class BlogConfig {
@Value("#{${blog-top-links}}")
private Map<String, String> topLinks;
@Value("#{'${blog-list}'.split(',')}")
private List<Integer> list;
...
省略get/set
實際不能省略,否則雖然能啓動不報錯,但是無法獲取到值
}
截圖如下所示:
@Value("#{'${ownerTransfer.tuhuOwnerIds}'.split(',')}")
private List<Integer> tuhuOwnerIds;
獲取map的方法:
@Value("#{${blog-top-links}}")
使用#{${key}}的方式
獲取list的方法:
@Value("#{'${blog-list}'.split(',')}")
使用@Value(“#{‘${key}’.split(‘,’)}”)的方式
split(‘,’)只以’,’爲分隔符,也可以換成別的
當配置文件中沒有key時,也可以使用key:default_value的方法設置默認值