spel 的学习

还差300页(┭┮﹏┭┮)

1 作用

1 使用bean的id来引用bean

2 调用方法和访问对象的属性

3 对值进行算术 关系 和逻辑运算

4 正则表达式匹配

2 使用

    

1

最简单的spel表达式为#{1}

或者

2

#{T{System}.currentTimeMillis()}  它的最终结果是计算表达式的那一刻当前时间的毫秒数.T()表达式会将java.lang.System视为java中对应的类型,因此可以调用其static修改currentTimeMills()方法

3 引用其他的bean或者其他bean的属性

#{sgtPeppers.artist}

 

#{artistSelector.selectArtist()}

 

#{sgtPeppers}

 

 

 

4 使用systemProperties对象应用系统属性

#{systemProperties['disc.title']}

 

 

使用

Public BlankDisc( @value("#{systemProperties['disc.title']"} String title,@value("#{systemProperties['disc.artist']}")String artist)

{

 this.title=title;

This.artist=artist;

}

 

在xml配置中,你可以将spel表达式传入 或者的value属性中,或者将其作为p-命名空间或者c-命名空间条目的值。例如

c:_title="#{systemProperties'[disc.artist']}"

C:artist="#{systemProperties['disc.artist']}" />

 

 

#{artistSelector.selectartitst()?.toupperCase())

 

使用了?运算符。这个运算符能够访问它右边的内容之前,确保它所对应的元素不是Null。所以,如果selectArtist()返回值是null的话,那么spel将不会调用toupperCase()方法。表达式的返回值会是null

 

将这个T()运算符的结果指定一个class对象,代表了java.lang.Math

#{2*T{java.lang.Math}.PI*circle.radius}

 

字符串拼接

#{disc.title+'by'+disc.artist}

比较符

#{counter.total==100}

 

三元运算符的一个常见场景就是检查null值,并用一个默认值来代替null。例如 判断disc.title的值是不是Null,如果是null的话,那么表达式的计算结果就会 Rattle and Hum

#{disc.title ?: 'Rattle and Hum'}

 

正则表达式

#{admin.email matches '[表达式']}

你可能感兴趣的:(java,spring)