Spring 学习笔记 - Spring Expression Language (SpEL) 表达式
发布日期:2021-06-30 14:54:01 浏览次数:3 分类:技术文章

本文共 3834 字,大约阅读时间需要 12 分钟。

Spring 学习笔记 - Spring Expression Language(SpEL)表达式

基础运算

变量引用: #name 从当前上下文件中取变量 name 算数运算: 加+, 减-, 乘*, 除/, 求余%, 幂^逻辑运算: ==, !=, >, >=, <, <=, between三目运算: 2>1 ? 真 : 假正   则:  str matches regex 例:"'123' matches '\d{3}'" 结果 true

调用对象、方法

解析htmldoc对象,并取出title内容

T(org.jsoup.Jsoup).parse(#htmlStr).getElementsByTag("title").text()

解析urldoc对象,并取出title内容

T(org.jsoup.Jsoup).connect('https://blog.csdn.net/jx520/article/details/114948684').get().getElementsByTag("title").text()

示例代码

演示了:正则、字符串的substring、indexOf

import org.junit.Test;import org.springframework.expression.EvaluationContext;import org.springframework.expression.Expression;import org.springframework.expression.ExpressionParser;import org.springframework.expression.spel.standard.SpelExpressionParser;import org.springframework.expression.spel.support.SimpleEvaluationContext;import org.springframework.expression.spel.support.StandardEvaluationContext;import org.springframework.util.Assert;public class SpELTest {
String str = "
湖边的小屋遗址
那唐僧内眼凡胎不识妖怪,反护着它……

"; /** 正则 */ @Test public void spelTest(){
String regex = ".*唐僧.*"; String condition = "#result matches #expect" ; EvaluationContext context = SimpleEvaluationContext.forReadWriteDataBinding().build(); context.setVariable("result", str); context.setVariable("expect", regex); ExpressionParser parser = new SpelExpressionParser(); Expression expression = parser.parseExpression(condition); Boolean value = expression.getValue(context, Boolean.class); System.out.println("========================================================="); System.out.println("result: " + str); System.out.println("expect: " + regex); System.out.println("表达式: " + expression.getExpressionString()); System.out.println("结 果: " + value); Assert.isTrue(value, "应该匹配正则: " + regex); } /** 方法 substring 需要 StandardEvaluationContext */ @Test public void spelTestSubstring(){
String expect = "湖边的小屋遗址"; String condition = "#result.substring(92, 99) == #expect" ; ExpressionParser parser = new SpelExpressionParser(); EvaluationContext context = new StandardEvaluationContext(); context.setVariable("result", str); context.setVariable("expect", expect); Expression expression = parser.parseExpression(condition); Boolean value = expression.getValue(context, Boolean.class); System.out.println("========================================================="); System.out.println("result: " + str); System.out.println("expect: " + expect); System.out.println("表达式: " + expression.getExpressionString()); System.out.println("结 果: " + value); Assert.isTrue(value, ".substring(92, 99) 应该等于: " + expect); } /** 方法 indexOf 需要 StandardEvaluationContext */ @Test public void spelTestIndexOf(){
Integer expect = 150; String condition = "#result.indexOf('反护着它') == #expect"; ExpressionParser parser = new SpelExpressionParser(); EvaluationContext context = new StandardEvaluationContext(); context.setVariable("result", str); context.setVariable("expect", expect); Expression expression = parser.parseExpression(condition); Boolean value = expression.getValue(context, Boolean.class); System.out.println("========================================================="); System.out.println("result: " + str); System.out.println("expect: " + expect); System.out.println("表达式: " + expression.getExpressionString()); System.out.println("结 果: " + value); Assert.isTrue(value, ".indexOf('反护着它') 应该等于: " + expect); } }

参考资料

转载地址:https://jerryjin.blog.csdn.net/article/details/114948684 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:RuoYi 若依后台管理系统-学习笔记-【权限配置】 匿名访问。
下一篇:SpringBoot - 学习笔记 - 整合RabbitMQ

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月27日 08时06分17秒