SpEL表达式

总结自:www.jianshu.com/p/61f7c6fe03ec 

 

SpEL是一种表达式语言,可以与spring应用程序运行时的对象交互,可简化开发,减少一些逻辑、配置的编写。

能在配置文件中使用,也能在注解中使用(常用于@Value等)

备注:SpEL都是#{}的格式

 

字面值

整数

#{5}

浮点数

#{3.1415}

科学计数法

#{9.87E4}

字符串(使用单引号/双引号,皆可

#{'hello'}  或 #{"hello"}

boolean值

#{true}

 

引用Bean并使用其属性与方法

通过ID引用bean

#{a}  //a为bean的id

使用bean的属性

#{a.b}

使用bean的方法

#{a.c()}

可链式调用

#{a.c().toUpperCase()}

通过.?(类型安全的运算符)避免空指针(NullPointerException)

#{a.c()?.toUpperCase()}

即:a.c()存在时才使用toUpperCase()

备注:?.不是三元运算符

 

使用类类型

即:通过T()可以访问类作用域的方法和常量的话

通过T()获取常量

#{T(java.lang.Math).PI}

通过T()获取方法

#{T(java.lang.Math).random()}

 

运算符

计算符,如*、+、-...

#{T(java.lang.Math).PI*circle.r^2}

比较运算符

#{a.b==100}

#{a.b eq 100}

三元运算符

#{scoreboard.score > 1000 ? "winner" : "loser"}

正则表达式

#{admin.email matches '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9._%+-]+\\.com'}

 

集合

通过[]引用集合中的一个元素

#{jukebox.song[4].title}

备注:[]也可用于字符串

如:#{'this is a test' [3]}

重点:

集合运算符

.?[](查询运算符)对集合过滤

#{jukebox.songs.?[artist eq 'Aerosmith']}

检查歌曲的artist属性是不是等于Aerosmith,是的话放入新的集合。
 

.^[]”和“.$[]”,它们分别用来在集合中查询第一个匹配项和最后一个匹配项

投影运算符( .![]),它会从集合的每个成员中选择特定的属性放到另外一个集合中




 

转载于:https://www.cnblogs.com/yanze/p/10709862.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值