码迷,mamicode.com
首页 > 编程语言 > 详细

spring-expression-01

时间:2018-11-19 23:04:45      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:integer   start   print   tar   efi   public   分割   art   err   

表达式步骤

    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

标签:integer   start   print   tar   efi   public   分割   art   err   

原文地址:https://www.cnblogs.com/blog-747674599/p/9986316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!