Spring 表达式expression

1、引入依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>
    </dependencies>

2、demo

public class SpringExpressionTest {
   

    @Test
    public void testSqEL() {
   

        //创建表达式列表
        ArrayList<String> list = new ArrayList<>();
        list.add("#A == 1");
        list.add("#B == 1");
        list.add("#C == 1 && #D == 1");
        list.add("#B == 1 && #D == 1");

        //创建参数map
        HashMap<String, Object> map = new HashMap<>();
        map.put("A", 1);
        map.put("B", 2);
        map.put("C", 1);
        map.put("D", 1);

        System.out.print("参数值:");
        System.out.println(map.toString());

        //创建ExpressionParser解析表达式
        ExpressionParser parser = new SpelExpressionParser();
        //创建一个虚拟的容器EvaluationContext
        StandardEvaluationContext context = new StandardEvaluationContext();
        for (Map.Entry e : map.entrySet()) {
   
            String key = (String) e.getKey();
            Integer value = (Integer) e.getValue();
            //向容器内添加变量
            context.setVariable(key, value);
        }

        list.stream().forEach(expression -> {
   
            System.out.print("expression : " + expression);
            //getValue有参数context,从新的容器中根据SpEL表达式获取所需的值
            Boolean flag = parser.parseExpression(expression).getValue(context, Boolean.class);
            System.out.println("\t结果:" + flag);
        });
    }
}

相关推荐

  1. Spring 表达式expression

    2023-12-27 17:30:02       50 阅读
  2. 正则表达式(Regular Expression)详解

    2023-12-27 17:30:02       33 阅读
  3. C#中正则表达式(Regular Expression

    2023-12-27 17:30:02       35 阅读
  4. nftables(5)表达式(3)PAYLOAD EXPRESSIONS

    2023-12-27 17:30:02       22 阅读
  5. nftables(4)表达式(2)主要表达式(PRIMARY EXPRESSIONS)

    2023-12-27 17:30:02       22 阅读
  6. 动态表达式树(Expression Tree)来实现动态筛选

    2023-12-27 17:30:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-27 17:30:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-27 17:30:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-27 17:30:02       87 阅读
  4. Python语言-面向对象

    2023-12-27 17:30:02       96 阅读

热门阅读

  1. 相机FOV是什么英文单词的缩写,是什么意思。

    2023-12-27 17:30:02       56 阅读
  2. 前端axios与python库requests的区别

    2023-12-27 17:30:02       59 阅读
  3. effective c++ 笔记 导读/条款2-4

    2023-12-27 17:30:02       51 阅读
  4. NGINX高级技巧

    2023-12-27 17:30:02       61 阅读
  5. ElementuiPlus文件上传失败原因,一个小坑记录!

    2023-12-27 17:30:02       57 阅读
  6. 架构艺术:系统演进的精髓与实践

    2023-12-27 17:30:02       50 阅读
  7. Python实现音乐推荐系统

    2023-12-27 17:30:02       45 阅读
  8. python异常之assert语句

    2023-12-27 17:30:02       74 阅读