Spring表達式語言:SpEL


1、Spring表達式語言(簡稱:SpEL):是一個支持運行時查詢和操作對象圖的強大的表達式語言

2、語法類似於EL:SpEL使用#{...}作為定界符,所有在大括號內的字符都被認為是SpEL。

3、SpEL為bean的屬性進行動態賦值提供了便利

4、通過SpEL可以實現:

--通過bean的id對bean進行引用

--調用方法以及引用對象中的屬性

--計算表達式的值

--正則表達式

 

【SpEL:字面量】

字面量的表示:

--整數:<property name=“count” value=“#{5}”/>

--小數:<property name=“frequency” value=“#{89.7}”/>

--科學計數法:<property name=“capacity” value=“#{1e4}”/>

--String可以使用單引號或者雙引號作為字符串的定界符號:

  <property name="name" value="#{'Tom'}"/>或

  <property name="name" value='#{"Tom"}'/>

--Boolean:<property name=“enabled” value=“#{false}”/>

 

【SpEL:引用Bean、屬性和方法(1)】

(1)引用其他對象

1 <!--通過value屬性和SpEL配置Bean之間的應用關系-->
2 <property name="prefix" value="#{prefixGenerator}"></property>

 

(2)引用其他對象的屬性

1 <!--通過value屬性和SpEL配置suffix屬性值為另一個Bean的suffix屬性值-->
2 <property name="suffix" value="#{sequenceGenerator2.suffix}"/>

 

(3)調用其他方法,還可以鏈式操作

1 <!--通過value屬性和SpEL配置suffix屬性值為另一個Bean方法的返回值-->
2 <property name="suffix" value="#{sequenceGenerator2.toString()}"/>
1 <!--方法的連綴-->
2 <property name="suffix" value="#{sequenceGenerator2.toString()。toUpperCase()}"/>

 

(4)調用靜態方法或者靜態屬性:通過T()調用一個類的靜態方法,它將返回一個Class Object,然后再調用相應的方法或屬性

1 <property name="initValue" value="#{T(java.lang.Math).PI}"></property>

 

【SpELl支持的運算符號】

1、算數運算符:+,-,*,/,%,^。

2、加號還可以用作字符串連接。

3、比較運算符:<,>,==,<=,>=,It,gt,eg,le,ge

4、邏輯運算度:and,or,not

5、if-else運算符

6、正則表達式:matches

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM