springboot yml读取List、Map

yml配置文件内容

data:
  lists:
    - "001"
    - "002"
  maps:
    "[key1]": "value1"
    "[key2]": "value2"

配置类

@Configuration
@ConfigurationProperties(prefix = "data")
@Data
public class DataListConfig {
    private List<String> lists;

    private Map<String, String> maps;
}

使用

public class TestController {
   
    @Autowired
    private DataListConfig dataListConfig;

    @GetMapping
    public String test() {
        System.out.println(dataListConfig.getLists());
        return "6666";
    }
}

最后

使用map时,key最好都加上[],因为如果key包含除小写字母、数字字符或-以外的任何字符,不加上[],key的值会缺失,比如key原始值是”zhang三”,不加[]的话key可能读到的是”zhang”。
忘记在官网还是stackoverflow看过说明,如下:

When binding to Map properties, if the key contains anything other than lowercase alpha-numeric characters or -, you need to use the bracket notation so that the original value is preserved. If the key is not surrounded by []


版权声明:本文为not_say原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/not_say/article/details/114101985