天天看點

Spring(六)——Spring的表達式語言:SpEL

  • Spring 表達式語言(簡稱SpEL):是一個支援運作時查詢和操作對象圖的強大的表達式語言。
  • 文法類似于 EL:SpEL 使用 #{…} 作為定界符,所有在大框号中的字元都将被認為是 SpEL
  • SpEL 為 bean 的屬性進行動态指派提供了便利
  • 通過 SpEL 可以實作:
    • 通過 bean 的 id 對 bean 進行引用:
      • Spring(六)——Spring的表達式語言:SpEL
    • 調用方法以及引用對象中的屬性:
      • Spring(六)——Spring的表達式語言:SpEL
    • 調用其他方法,還可以鍊式操作:
      • Spring(六)——Spring的表達式語言:SpEL
    • 調用靜态方法或靜态屬性:通過 T() 調用一個類的靜态方法,它将傳回一個 Class Object,然後再調用相應的方法或屬性:
      • Spring(六)——Spring的表達式語言:SpEL
    • 計算表達式的值
      • 算數運算符:+, -, *, /, %, ^:
        • Spring(六)——Spring的表達式語言:SpEL
      • 加号還可以用作字元串連接配接:
        • Spring(六)——Spring的表達式語言:SpEL
      • 比較運算符: <, >, ==, <=, >=, lt, gt, eq, le, ge:
        • Spring(六)——Spring的表達式語言:SpEL
      • 邏輯運算符号: and, or, not:
        • Spring(六)——Spring的表達式語言:SpEL
      • if-else 運算符:?: (ternary), ?: (Elvis)
        • Spring(六)——Spring的表達式語言:SpEL
      • if-else 的變體:
        • Spring(六)——Spring的表達式語言:SpEL
    • 表示字面值,但意義不大。
      • 整數:<property name="count" value="#{5}"/>
      • 小數:<property name="frequency" value="#{89.7}"/>
      • 科學計數法:<property name="capacity" value="#{1e4}"/>
      • String可以使用單引号或者雙引号作為字元串的定界符号:<property name=“name” value="#{'Chuck'}"/> 或 <property name='name' value='#{"Chuck"}'/>
      • Boolean:<property name="enabled" value="#{false}"/>
    • 正規表達式的比對
      • 正規表達式:matches
      • Spring(六)——Spring的表達式語言:SpEL