【SpringBoot】@Value讀取properties作爲map或list

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的方法設置默認值

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