Spring使用@Value注入List和Map
yml常规写法
需要添加spring-boot-configuration-processor模块,并且对要注入的对象添加set方法
List
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>interceptorconfig:
path:
exclude:
- /source
- /sep/user/login
- /sep/user/getCheckCode/@Component
@Data
@ConfigurationProperties(prefix = "interceptorconfig.path")
public class TokenFilter {
private List<String> exclude;
}Map
generate:
companyAndPlanMap:
101: 2018081601
121: 2018081602
111: 2018081603@RestController
@RequestMapping("/c")
@Slf4j
@ConfigurationProperties("generate")
public class C35Controller {
private Map<String, String> companyAndPlanMap;
public void setCompanyAndPlanMap(Map<String, String> companyAndPlanMap) {
this.companyAndPlanMap = companyAndPlanMap;
}
} EL表达式+JSON写法
scio.cloud.list: topic1,topic2,topic3
scio.cloud.maps: "{key1: 'value1', key2: 'value2'}"@Value("#{'${scio.cloud.list}'.split(',')}")
private List<String> list;
@Value("#{${scio.cloud.maps}}")
private Map<String,String> maps;参考文档
Spring使用@Value注入List和Map
https://blog.yjll.site/post/a336f015.html