SpEL(Spring Expression Language),即Spring表达式语言。它是一种类似JSP的EL表达式
SpEL:可以在spring容器内实时查询和操作数据,尤其是操作List列表型、Array数组型数据。
我的理解是,SpEL可以在数据集合里获取固定的字段数据
一. 用法
常规SpEL有三种用法:
- 在注解@Value中使用
- 在XML配置中使用
- 在代码中创建Expression对象,利用Expression对象来执行SpEL
1、注解@Value中使用
//@Value能修饰成员变量和方法形参
//#{}内就是SpEL表达式的语法
//Spring会根据SpEL表达式语法,为变量arg赋值
@Value("#{表达式}")
public String arg;
2. XML配置
XML配置用在Spring的applicationContext.xml配置文件内的<bean>元素上,mapper的xml文件里,用法如下:
<bean id="xxx" class="com.java.XXXXX.xx">
<!-- 同@Value,#{}内是表达式的值,可放在property或constructor-arg内 -->
<property name="arg" value="#{表达式}">
</bean>
3. Expression
在代码中创建Expression对象,利用Expression对象来执行SpEL
ExpressionParser expressionParser = new SpelExpressionParser();
//表达式
Expression expression1 = expressionParser.parseExpression("#Date");
//执行 使用默认的 spring容器
System.out.println(expression1.getValue());
//使用自定义容器
EvaluationContext evaluationContext = new StandardEvaluationContext();
evaluationContext.setVariable("Date",111);
//spel表达式 在指定的执行计算结果
System.out.println(expression1.getValue(evaluationContext,String.class));
注:SpEL表达式总结_成长之路-CSDN博客_spel表达式
玩转Spring中强大的spel表达式!_meser88的博客-CSDN博客
彻底搞懂 Spring spel 表达式(下) - 真情的风 - 博客园