Spring-@Value-注入List对象-split
一、获取简单数据类型List
1、使用表达式分割:
@Value("#{' 加上 ${ }
这个错误:
@Value("#{'cred.enable.containerIdList:baofengnengyuan,AnQuanShengChanGong2,BaoXianFuWu'.split(',')}")
这个正确:
@Value("#{'${cred.enable.containerIdList:baofengnengyuan,AnQuanShengChanGong2,BaoXianFuWu}'.split(',')}")
2、使用yml的 - 前缀特性 【yml文件 列表前都是‘ - ’ 加空格开头】
table:
whiteList:
- jimu_
- base_
- sys_
- gen_
- media_
@Configuration
@ConfigurationProperties(prefix = "table")
public class WhiteListConfig {
private List<String> whiteList;
public List<String> getWhiteList() {
return whiteList;
}
public void setWhiteList(List<String> whiteList) {
this.whiteList = whiteList;
}
}
来自 https://www.cnblogs.com/person008/p/16466467.html
@NacosValue是否支持,未测试
二、获取实体数据类型List
来自 https://blog.csdn.net/tiantiantbtb/article/details/127974730
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Person {
private String name;
private String age;
private String content;
}
@Component//将该类交由Spring管理
@ConfigurationProperties(prefix = "project") //自定义.properties文件的前缀
//指定.properties文件名与位置,字符集编码,.properties文件经常出现乱码,相对没有yml文件好
@PropertySource(value = "classpath:config.properties",encoding="UTF-8")
@Data//这里需要提供set方法
public class ProjectListVo {
List<Person> plist;
}
config.properties中的内容
project.plist[0].name=zhangsan
project.plist[0].age=23
project.plist[0].content=哈哈
project.plist[1].name=lisi
project.plist[1].age=24
project.plist[1].content=呵呵