springboot读取yaml数组配置
前提,我们常见的读取方式
test: list: ${TEST_LIST:http://xxx.com,http://ac.com,http://cd.com} list2: - "http://xxx.com" - "http://ab.com"
@Configuration public class TestConfig { // java.lang.IllegalArgumentException: Could not resolve placeholder @Value("${test.list}") private String list; }
@Configuration public class TestConfig { // java.lang.IllegalArgumentException: Could not resolve placeholder @Value("${test.list}") private String[] list; }
@Configuration public class TestConfig { // java.lang.IllegalArgumentException: Could not resolve placeholder @Value("${test.list}") private List<String> list; }
正确写法
@Configuration @ConfigurationProperties("test") public class TestConfig { private List<String> list; public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } @Bean public String mmString() { System.out.println(list); return ""; } }
备注:
test: list: ${TEST_LIST:[http://xxx.com,http://ac.com,http://cd.com]} # 中括号错误 test: list: ${TEST_LIIST:"http://xxx.com","http://ac.com","http://cd.com"} # 不需要加引号