- 什么试SpEL
- Spring表达式语言(简称SpEl)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言. 它的语法类似于传统EL,但提供额外的功能,最出色的就是函数调用和简单字符串的模板函数。
// 参数
public void spELDemo(){
HashMap<String, Object> variablesMap = new HashMap<>(8);
variablesMap.put("num1",10);
variablesMap.put("num2",25);
variablesMap.put("NUMBER",55);
//定义表达式
String express = "#addExact(#num1,#num2) >= new Integer(['NUMBER'])";
//初始化一个表达式解析器
SpelExpressionParser spelExpressionParser = new SpelExpressionParser();
//使用表达试解析器 解析表达式
Expression expression = spelExpressionParser.parseExpression(express);
//类型装换,就是基于什么类去做类型转换。即感知上下文,也可以缓存解析的工程,加快下次解析的过程
StandardEvaluationContext evaluationContext = new StandardEvaluationContext(variablesMap);
//注入函数
evaluationContext.registerFunction("addExact",Math.class.getMethod("addExact", int.class, int.class));
//注入参数
evaluationContext.setVariables(variablesMap);
//输出结果
System.out.println(expression.getValue(evaluationContext));
}
- 一些解释
StandardEvaluationContext evaluationContext = new StandardEvaluationContext(variablesMap);
这行代码的意思就是创建一个上下文的管理器,这是默认的实现;主要负责类型的管理等;
就完了。。。。。!例子多看看就大概入门了哈哈哈!