SpEL(Spring Expression Language) 表达式
java
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
一级目录
java
@Test
public void testA() {
ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = new StandardEvaluationContext();
// 设置变量
context.setVariable("name", "Alice");
context.setVariable("age", 21);
// 表达式求值 Alice is a 21 years old
String result = parser.parseExpression("#name + ' is a ' + #age + ' years old'").getValue(context, String.class);
System.out.println(result);
// 条件判断 true
Boolean isAdult = parser.parseExpression("#age >= 18").getValue(context, Boolean.class);
System.out.println(isAdult);
}
二级目录
java
@Test
public void testA() {
Map<String,String> riskTagMap = new HashMap<>();
riskTagMap.put("一份工作", "#TAG.contains('工作')||#TAG.contains('职业')");
riskTagMap.put("一束鲜花", "#TAG.contains('鲜花')&&#TAG.endsWith('花')");
riskTagMap.put("七里香", "#TAG.startsWith('七')");
ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = new StandardEvaluationContext();
List<String> strList = Arrays.asList("职业规划","工人作业","工作时间","鲜花店","一只鲜花","七个葫芦娃","还有七天");
for (String str : strList) {
context.setVariable("TAG", str);
for (Map.Entry<String, String> entry : riskTagMap.entrySet()) {
// SpEL(Spring Expression Language) 表达式
Boolean result = parser.parseExpression(entry.getValue()).getValue(context, Boolean.class);
if (result) {
System.out.println(str);
}
}
}
}