spring表达层语言,简称spel,是一个支持运行时查询和操作对象图的强大的表达式语言。

一、知识点

语法类似于el:spel使用#{…}作为定界符,所有在大框号中的字符都将被认为是spel。

spel为bean的属性进行动态复制提供了便利。通过spel可以实现:

  1. 通过bean的id对bean进行引用。
  2. 调用方法以及引用对象中的属性。
  3. 计算表达式的值。
  4. 正则表达式的匹配。

例子:

解释一下:

  1. #{…}是定界符。
  2. 用”包围的是数值,例如#{‘alive233’}的值就是alive233。
  3. #{T(java.lang.Math).PI * 80}的T:使用”T(Type)”来表示java.lang.Class实例,”Type”必须是类全限定名,”java.lang”包除外。
  4. #{god}直接ref给god bean。
  5. #{kami.alive}直接ref给kami bean的值 alive。
  6. #{god.happy > 300 ? ‘神’:’人’}直接进行判断,但是我觉得交给逻辑部分进行判断不是更好…这样就不用在输入的时候下这么多功夫了…

二、代码实现

运行结果:

xie的name属性忘记用spel注入了,所以显示为null,无伤大雅。其他部分都成功进行输出,各种逻辑没有错误。

三、总结

spel还有很多语法,简单了解即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注