前言:
今天姐妹们对“el表达式的语法”大约比较讲究,你们都需要学习一些“el表达式的语法”的相关资讯。那么小编同时在网络上网罗了一些有关“el表达式的语法””的相关资讯,希望同学们能喜欢,同学们一起来学习一下吧!上篇我们学习了《SpringBoot实战13-Spring基础-Bean之间的异步事件通讯》,本篇我们学习Spring EL表达式。
6 Spring EL
Spring表达式语言(Spring Expression Language简称Spring EL)是在Spring生态下通用的,在运行时使用表达式查询属性信息(使用符号$)或操作Java对象(使用符号#),它可以主要使用在XML、注解上。
本节主要使用@Value(org.springframework.beans.factory.annotation.Value)注解来演示Spring EL的功能,它可以获得表达式计算出来的结果。
6.1 数学运算
我们可以用表达式进行进行数学运算,包括:+, -, *, /, %, ^, div, mod。
@Servicepublic class ValueService { @Value("#{1 + 2}") // Java对象操作使用# private Integer add;}6.2 比较运算
我们可以在表达式中进行比较等操作,包括:<, >, ==, !=,<=,>=,lt, gt,eq, ne, le, ge。
@Value("#{1 == 2}")private boolean compare;6.3 逻辑运算
我们可以在表达式中进行比较等操作,包括:and,or, not, &&, ||, !。
@Value("#{1 == 2 || 1 == 1}")private boolean compareOr;6.4 条件运算
使用三元运算符?:来进行条件运算。
@Value("#{1 < 2 ? 'wyf' : 'www'}")private String name;6.5 正则匹配
使用matches比较是否符合正则表达式。
@Value("#{'1' matches '\\d+' }")private boolean isNumber;6.6 调用Bean方法
可以直接用Spring EL来直接调用Bean的方法,如被调用的Bean定义为:
@Servicepublic class ForValueService { public String generate(String name){ return "Hello " + name; }}
我们可以通过#{bean名.方法名(参数)}来进行调用:
@Value("#{forValueService.generate('wyf')}")private String beanReturn;6.7 获得Environment中的属性
Environment可以从外部文件或者操作系统环境变量获取属性信息,如:
@Service@PropertySource("classpath:author.properties") //1public class ValueService { @Value("${author.name}") //2 private String authorName; @Value("${os.name}") //3 private String osName; }通过@PropertySource加载配置文件中的属性信息到Environment中;查询属性使用符号****,格式为: `∗∗,格式为:‘(属性名)`;同样获得操作系统环境变量信息的方式与2一致。
上面完整的代码如下:
@PropertySource("classpath:author.properties")public class ValueService { @Value("#{1 + 2}") private Integer add; @Value("#{1 == 2}") private boolean compare; @Value("#{1 == 2 || 1 == 1}") private boolean compareOr; @Value("#{1 < 2 ? 'wyf' : 'www'}") private String name; @Value("#{'1' matches '\\d+' }") private boolean isValidNumber; @Value("#{forValueService.generate('wyf')}") private String beanReturn; @Value("${author.name}") private String authorName; @Value("${os.name}") private String osName; public void doSomething(){ System.out.println("数学运算add的值是:" + add); System.out.println("逻辑运算compare的值是" + compare); System.out.println("逻辑运算compareOr的值是" + compareOr); System.out.println("条件运算name的值是:" + name); System.out.println("正则匹配isValidNumber的值是:" + name); System.out.println("调用Bean的返回值beanReturn值是:" + beanReturn); System.out.println("属性查询外部配置文件authorName值是:" + authorName); System.out.println("属性查询操作系统环境变量authorName值是:" + osName); }}
在JavaConfig进行结果检验:
@BeanCommandLineRunner valueClr(ValueService valueService){ return args -> valueService.doSomething();}
下一篇《SpringBoot实战15-Spring基础-AOP》
标签: #el表达式的语法 #el表达式 菜鸟教程