<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 簡介 * spring表達式語言(簡稱spel):是一個支持運行時查詢和操作對象圖的強大的表達式語言 * 語法類似于EL:SPEL使用`#{}`作為定界符,所有在大框號中字符都將被認為是spel * spel為bean的屬性進行動態賦值提供了便利 * 通過spel可以實現 - 通過bean的id對bean進行引用 - 調用方法以及引用對象中的屬性 - 計算表達式的值 - 正則表達式的匹配 # 基本語法 ~~~ #{ } 標記會提示Spring 這個標記里的內容是SpEL表達式。 #{rootBean.nestBean.propertiy} “.”操作符表示屬性或方法引用,支持層次調用 #{aList[0] } 數組和列表使用方括號獲得內容 #{aMap[key] } maps使用方括號獲得內容 #{rootBean?.propertiy} 此處"?"是安全導航運算符器,避免空指針異常 #{condition ? trueValue : falseValue} 三元運算符(IF-THEN-ELSE) #{valueA?:defaultValue} Elvis操作符,當valueA為空時賦值defaultValue ~~~ # 字面量 * 整數: `<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}" />` # 引用bean,屬性和方法 * 引用其他對象 ~~~ <!-- 通過value屬性和spel配置bean之間的應用關系 --> <property name="prefix" value="#{prefixGenerator}"></property> ~~~ * 引用其他對象的屬性 ~~~ <!-- 通過value屬性和spel配置suffix屬性值為另一個bean的suffix屬性值 --> <property name="suffix" value="#{prefixGenerator.suffix}"></property> ~~~ * 調用其他方法,還可以進行鏈式調用 ~~~ <!-- 通過value屬性值和spel配置suffix屬性值為另一個bean的方法的返回值 --> <property name="suffix" value="#{prefixGenerator.toString()}"></property> <!-- 方法連調 --> <property name="suffix" value="#{prefixGenerator.toString().toUpperCase()}"></property> ~~~ ~~~ @Value("#{beanId}") //使用Bean ID 將一個Bean 裝配到另一個Bean 的屬性中 @Value("#{beanId.attribute}") //使用Bean 的引用來獲取Bean 的屬性 @Value("#{beanId.getSomenthing()}") //調用引用Bean的方法 ~~~ # 支持的運算符號 * 算數運算符: +, -, *, /, %, ^ ~~~ <property name="adjustedAmount" value="#{counter.total + 42}" /> <property name="adjustedAmount" value="#{counter.total - 20}" /> <property name="circumference" value="#{2 * T(java.lang.Math).PI * circle.radius}" /> <property name="average" value="#{counter.total / counter.count}" /> <property name="remainder" value="#{counter.total % counter.count}" /> <property name="area" value="#{T(java.lang.Math).PI * circle.radius ^ 2}" /> ~~~ * 加號還可以用作字符串連接 ~~~ <constructor-arg value="#{performer.firstName + ' ' + performer.lastName}" /> ~~~ * 比較運算符: <, >, ==, <=, >=, lt, gt, eq, le, ge ~~~ <property name="equal" value="#{counter.total == 100}" /> <property name="hasCapacity" value="#{counter.total le 1000}" /> ~~~ * 邏輯運算符號: and, or, not, ! ~~~ <property name="large" value="#{shape.kind == shape.perimeter}" /> <property name="outOfStock" value="#{!product.available}" /> <property name="outOfStock" value="#{not product.available}" /> ~~~ * if-else運算符: ?:(elvis) ~~~ <constructor-arg value="#{songSelect? 'jelly': 'jack'}" /> ~~~ * if-else的變體 ~~~ <constructor-arg value="#{songSelect?: 'jack'}" /> ~~~ * 正則表達式:matches ~~~ <constructor-arg value="#{admin.email matches '[a-zA]'}" /> ~~~ * 調用靜態方法和靜態屬性 通過T()調用一個類的靜態方法,它將返回一個Class Object,然后再調用相應的方法或屬性 ~~~ <property name="initValue" value="#{T(java.lang.Math).PT}"></property> ~~~ ~~~ @Value("#{T(java.lang.Math).PI}") @Value("#{T(java.lang.Math).random()}") @Value("#{T(java.lang.Math).random() * 100.0 }") ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看