开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情
前言
-
在平时开发中有的时候我们会遇到各种无力的需求,我们开发就是按照产品需求进行逻辑开发,但是有的时候却遇到需要懂动态的执行某个表达式降结果呈现出来,这种虽然高大上呢但是对于开发同学来说的确不好实现。
-
好在如果你是spring 用户,那么你就不需要担心这个问题了。因为spirng 已经帮我们封装好了独赢的方法。springexpression 这个就是表达式解析器,包括单不限于在网管中都会使用相关的技术。
具体做啥
- SpEL是单独模块,只依赖于core模块,不依赖于其他模块,可以单独使用。能与Spring功能完美整合,如能用来配置Bean定义。
- 表达式语言给静态Java语言增加了动态功能。
- 表达式语言一般是用最简单的形式完成最主要的工作,减少我们的工作量。
表达式
-
通过他你能够实现加减乘除运算,浴火运算,还有我们经常在流程中设计的逻辑运算。这些统统能够帮你实现。
-
算术运算符:+,-,*,/,%,^(加号还可以用作字符串连接)
-
比较运算符:< , > , == , >= , <= , !=, lt , gt , eg , le , ne
-
逻辑运算符:and , or , not , &&, || ,!
-
if-else 运算符: 三目运算及Elivis运算表达式
-
正则表达式:
-
括号优先级表达式: 使用“(表达式)”构造,括号里的具有高优先级
同根同宗
-
ExpressionParser和StandardEvaluationContext便是Spring Expression的大杀器,其中context字面意思理解下就差不多了,上下文,同样的规则在不一样的上下文中解析出来的结果自然是不一样的,context中我们放置了一个变量o,即订单,如果你的上下文中有多个变量,尽管往里面扔,解析器parser是可以定义为static,每次实例化是没必要的,这里是为了大家好理解直接定义成了局部变量。