![从企业级开发到云原生微服务:Spring Boot实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/257/33831257/b_33831257.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.6 Spring EL
Spring EL(Spring Expression Language,Spring表达式语言)是Spring生态下的通用语言,在运行时使用表达式查询属性信息(使用符号$)或操作Java对象(使用符号#),主要用在XML或注解上。
本节主要使用@Value(org.springframework.beans.factory.annotation.Value)注解来演示Spring EL的功能,它可以获得表达式计算出来的结果。
1.数学运算
可以在表达式中进行数学运算,包括+、-、*、/、%、^、div和mod。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_74_01.jpg?sign=1739529263-W5F5HgdOzcfItqgOPQAolttPkzsenhg7-0-b2f9d9d736f816ec0f4ae994df215087)
2.比较运算
可以在表达式中进行比较运算,包括<、>、==、!=、<=、>=、lt、gt、eq、ne、le和ge。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_74_02.jpg?sign=1739529263-TtaT8iqkEqESzxcLSiKKf1QU0MeMa7Ct-0-da6aa1c473cc937d4871a827b6aa0e74)
3.逻辑运算
可以在表达式中进行逻辑运算,包括and、or、not、&&、||和 !。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_74_03.jpg?sign=1739529263-S5wFyVXFgdklCEdi8b07WiCdmTQD5QbQ-0-94943bbdaadf2984ced59a22500fcaf5)
4.条件运算
使用三元运算符?:可进行条件运算。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_74_04.jpg?sign=1739529263-1m5HdoyY8WOWkvZrAfr2GdOFvsSfhpIQ-0-ef273437f85800e5c8c0985ed3e783ef)
5.正则匹配
使用matches可判断字符是否符合正则表达式。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_74_05.jpg?sign=1739529263-yGoWwRY34Yc3PqRNEBSxbE8bM4akVtgr-0-c82c089af886879989367f8dfb21f77f)
6.调用Bean方法
可以直接用Spring EL来调用Bean的方法,假设被调用的Bean定义如下。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_75_01.jpg?sign=1739529263-F5hhyPW1SzKadg22FJURN4wVSOXII3a2-0-f28d72cefe4e7b0b90b3d9c88e3d5601)
可以通过#{bean名.方法名(参数)}来调用。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_75_02.jpg?sign=1739529263-o1eyALIGiZBGqkslGnQfCeZRoY0SrWbi-0-d935c527ec35e0e5f9c091d85abf231d)
7.获得Environment中的属性
Environment可以从外部文件或者操作系统环境变量中获取属性信息,示例如下。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_75_03.jpg?sign=1739529263-UqRw6s31qd4PKkqunyxsSrmrJ4C4qyfR-0-f72fed15f4f53d0af74abbd76601ef07)
a.通过@PropertySource把配置文件中的属性信息加载到Environment中。
b.查询属性使用符号$,格式为$(属性名)。
c.获得操作系统环境变量信息的方式与b一致。
完整代码如下。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_75_04.jpg?sign=1739529263-Foovma90aHafO3xn6iFgmtN7jmtAsX0d-0-7b6e133a7f0cd61e2050d3d4c087fe58)
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_76_01.jpg?sign=1739529263-2MToIxk2U0O0jBJHkMbAq9ZhrUMXPg4e-0-d18d9c667900008b5451621daf5031a3)
在JavaConfig中进行校验,结果如图3-16所示。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_76_02.jpg?sign=1739529263-jHESSxT1jSiaAYXKnYvO8iPFfNFUFIJ9-0-4d59bbe9b0babcb5c636181ea2ed2d56)
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_76_03.jpg?sign=1739529263-OVEJ8Vt5KFXRZNo65qeAZj8RkIjg8ctv-0-a80eb0c59222d733f46ca21bd36027ab)
图3-16