SpEL(Spring Expression Language)是一种功能非常强大的表达式语言,可用于在运行时查询和操作对象。可以用在xml配置文件或者注解上,在Spring Bean创建时生效。
本章节,我们来看看SpEL在Spring Boot配置中如何使用。
直接上个代码示例吧,其他的,可以参考
https://docs.spring.io/spring/docs/4.3.10.RELEASE/spring-framework-reference/html/expressions.html
@Data
@Configuration
@PropertySource(name = "spelProperties", value = "classpath:spelconfig.properties", encoding = "utf-8")
@ToString
public class SpELConfig {
@Value("#{'${user.names}'.split(',')}") // list
private List<String> userNames;
@Value("#{${user.ages}}") // map
private Map<String, Integer> ages;
@Value("#{'${user.names}'.split(',')[0]}") // list.get(0)
private String firstName;
@Value("#{${user.ages}.zhangsan}")
private String age;
@Value("#{${user.ages}['fff'] ?: 44}") // ?和:之间不能有空格
private String fffAge;
@Value("#{systemProperties['java.home']}") // java home
private String javeHome;
}
// spelconfig.properties
user.names=zhangsan,lisi,wangwu
user.ages={zhangsan: 20, lisi: 30, wangwu: 40}
打印结果:
SpELConfig(userNames=[zhangsan, lisi, wangwu], ages={zhangsan=20, lisi=30, wangwu=40}, firstName=zhangsan, age=20, fffAge=44, javeHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre)
伙伴们,行动起来,加油!!!
源码地址:Spring Boot Learning: 学习springboot中的各个组件,编写示例工程 运行spring-boot-config工程。
本文暂时没有评论,来添加一个吧(●'◡'●)