SpringBoot yaml中的數組類型取值方式
yaml中的數組類型取值
yaml中簡單的風格,十分受大傢的歡迎
先說下簡單的配置如何取值
# application-dev.yml testValue: testValueChild: testValueChildValue ... // SomeServiceImpl.java @Service public class SomeServiceImpl { // 這樣就可以直接拿到配置信息啦 @Value("${testValue.TestValueChild}") private String testValueChild; ... }
有些時候我們會需要一些數組類型,下面簡單介紹一種配置信息為數組的寫法,比如我們有以下格式的配置,數據同步是否開啟,以及數據同步需要同步的數據類型,
dataSync: enable: true type: - "1" - "2" - "3"
此時無法使用@Value取值,可通過如下方式取值,
... // 單獨註冊一個bean,用於存儲這類配置信息 @Component @Data @ConfigurationProperties(prefix = "data-sync") public class DataSyncConfig { private Boolean enable; private List<String> types; } ... public class SomeServiceImpl{ @AutoWired private DataSyncConfig dataSyncConfig; public void youerMethod() { List<String> types = dataSyncConfig.getTypes(); } }
springboot配置文件yml的數組形式
配置文件
proxy: url: - "http://www.baidu.com" - "http://www.jd.com"
實體類
@Data @NoArgsConstructor @AllArgsConstructor @Configuration @ConfigurationProperties(prefix = "proxy") public class ProxyConfig { private String[] url; }
對象裡面的引用名字(‘url’),必須和yml文件中的(‘url’)一致,不然就會取不到數據。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot中YAML語法及幾個註意點說明
- 解決SpringBoot使用yaml作為配置文件遇到的坑
- 基於springBoot配置文件properties和yml中數組的寫法
- SpringBoot配置加載,各配置文件優先級對比方式
- Spring Boot兩種全局配置和兩種註解的操作方法