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"}
# 不需要加引号
经验分享 程序员 微信小程序 职场和发展