spring-expression-01
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-expression-01相关的知识,希望对你有一定的参考价值。
表达式步骤
public static void main(String[] args) { //将一整个语句直接定义了字符串 String str = "("Hello " + "World!!!").substring(6, 9)"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算 EvaluationContext context = new StandardEvaluationContext() ; //4通过表达式进行结果计算 System.out.println(exp.getValue()); System.out.println(str); }
使用变量
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "("Hello " + "World!!!").substring(#start, #end)"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; context.setVariable("start", 6); context.setVariable("end", 9); //4通过表达式进行结果计算 System.out.println(exp.getValue(context)); }
简单表达式
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "1 + 2"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; //4通过表达式进行结果计算 System.out.println(exp.getValue(context)); }
自定义分割符
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "#[1 + 2]"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 边界匹配 Expression exp = parser.parseExpression(str,new ParserContext() { @Override public boolean isTemplate() { return true; } @Override public String getExpressionSuffix() { return "]"; } @Override public String getExpressionPrefix() { return "#["; } }); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; context.setVariable("start", 6); context.setVariable("end", 9); //4通过表达式进行结果计算 System.out.println(exp.getValue(context)); }
基本表达式
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "null"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; //4通过表达式进行结果计算 Object num = exp.getValue(context ,Object.class); System.out.println(num); }
+
四则运算
^ 幂运算 2^3
% MOD
/ DIV
> GT
>= GE
== EQ
!= NE
< LT
<= LE
! NOT
AND
OR
正则 如 "‘123‘ matches ‘\d{3}‘"
三木运算 null==null ?‘Hello‘ : ‘world‘
简单三目运算 true ? : false
null ? : false
class表达式
// String str = "T(String)"; //Class // String str = "T(Integer).MAX_VALUE"; //静态属性 // String str = "T(Integer).parseInt(‘123‘)"; //静态方法 // String str = "new java.util.Date()"; //实例化对象 // String str = "‘hello‘ instanceof T(String)"; //instanceof
以上是关于spring-expression-01的主要内容,如果未能解决你的问题,请参考以下文章