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");
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 parser = new SpelExpressionParser();
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);
Boolean flag = parser.parseExpression(expression).getValue(context, Boolean.class);
System.out.println("\t结果:" + flag);
});
}
}