spEL表达式:是一中装配Bean的方式,它通过运行期执行的表达式将值装配到Bean的属性或构造器的参数中。
1:spEL表达式的首要目标是通过计算获得某个值(对字面值,Bean的属性,某个类的常量进行求值)
2:#{}标记会提示spring这个标记里的内容是SpEL表达式:先定义EL表达式
3:ExpressionParser接口:使用parseExpression方法将字符串表达式转换为Expression对象。
ExpressionParser parser = new SpelExpressionParser();
4:Expression接口:getValue方法用于获取表达式值,提供setValue方法用于设置对象值
parser.parseExpression(stroeRule).getValue(context, Integer.class);
5:StandardEvaluationContext接口:使用setRootObject方法来设置根对象,使用setVariable方法来注册自定义变量,使用registerFunction来注册自定义函数等等。
StandardEvaluationContext context = new StandardEvaluationContext();
context.registerFunction("max", UdfUtils.class.getDeclaredMethod("max", Object[].class));
context.setVariable("nosale_days", nosale_days.intValue());
6:表达式:#value(value可以被替代为具体的值)