@Value注解注入List、Set、Map数据结构

时间:2025-02-13 20:33:22
百因必有果

我今天要讲的配置注入时基于*.properties文件的,yaml格式可能有点区别。借助@Value注解、SPEL表达式实现,请看以下示例:

List
    @Value("#{'${}'.split(',')}")
    private List<String> listType;
	list.type=1,2,3,4
Set
    @Value("#{'${}'.split(',')}")
    private Set<String> clusterHostAndPorts;
	spring.redis.cluster.nodes=10.199.153.166:7001,10.199.153.166:7002
Map
    @Value("#{${}}")
    private ConcurrentHashMap<String,String> map;
	map.config={'01':"AA",'02':"BB",'03':"CC",'04':"DD"}

注意点:
测试的时候发现,如果key值不加引号,如果配置的key为01,而map中得到的key为1,少了个0,所以将key值加上了引号