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
调用对象、方法
解析html
为doc
对象,并取出title
内容
T(org.jsoup.Jsoup).parse(#htmlStr).getElementsByTag("title").text()
解析url
为doc
对象,并取出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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月27日 08时06分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
考研比惨五大专业排行榜,第一名没人不服!
2019-05-01
没钱没公司,怎么做一款付费产品
2019-05-01
Python 3.8 新特性来袭
2019-05-01
查询亿级数据毫秒级返回!Elasticsearch 是如何做到的?
2019-05-01
FastAPI 构建 API 服务,究竟有多快?
2019-05-01
为什么Quora选择用Python语言?
2019-05-01
一劳永逸学编程的方法
2019-05-01
代码整洁之道-编写 Pythonic 代码
2019-05-01
如何科学的刷 Leetcode
2019-05-01
树莓派程序开机自启动
2019-05-01
连锁门店无线通信方案
2019-05-01
配置Lotus Domino集群视频详解
2019-05-01
OSSIM(开源安全信息管理系统)在企业网络管理中的应用
2019-05-01
如何搭建Eclipse +Apache Tomcat配置Java开发环境
2019-05-01
Linux软件万花筒
2019-05-01
《Linux企业应用案例精解》一书已由清华大学出版社出版
2019-05-01
安装配置FreeBSD9全过程体验
2019-05-01
全球开源软件发展趋势分析
2019-05-01
Linux系统安全加固(一)
2019-05-01