Spring spel表現の使い方例


spring in action第三版読書ノート
spring 3.0はspring expression langage(spel)言語を導入しています。spelを通じて実現できます。
1.beanのidでbeanを引用する
2.呼び出し方法および参照先の属性
3.式の値を計算する
4.正規表現のマッチング
5.集合の操作
SPelの最終的な目標は、式計算後の値を得ることであり、これらの表現はいくつかの値を列挙することができます。参照対象のいくつかの属性、またはクラスのいくつかの定数、複雑なspel表現は通常、いくつかの単純な要素から構成されます。最も簡単なのは、与えられた要素のいくつかの値を得ることです。例えば、
<property name=「count」value=「the value is嗳{5}」/。このような状況はバカみたいです。spelは必要ないですが、複雑な表現は簡単に構成されています。
他のbeanへの引用
spelを通じて、私達もcontextの中で他のbeanを引用することができます。

<property name="instrument" value="#{saxophone}"/> 
に等しい

<property name="instrument" ref="saxophone"/> 
もう一つのidを引用してsaxophoneのbeanをinstruumentの値とします。
他のbeanの属性の参照

<bean id="carl" class="com.springinaction.Instrumentalist"> 
<property name="song" value="#{kenny.song}"/> 
</bean> 
idをkennyのbeanのsongフィールドとするvalue
他のbeanの中のある方法に対する引用

<property name="song" value="#{songSelector.selectSong().toUpperCase()}"/> 
IDがsong SelectorのbeanであるSelectSongを呼び出します。その戻り値をsongの値として使います。これもselectSong()メソッドがnullに戻ると、空のポインターが異常です。
<property name=「song」value=「啱{song Selector.selectSong()?toUpperCase()'/>,表式(?.)selectSong()が空に戻らない場合にtoUpperCase()メソッドを呼び出すことができます。空に戻りますと、後の方法を呼び続けません。
クラスを参照する
もしある種類が外部の種類で、springで定義されているbeanではなく、どのように参照しますか?
式T()を使用します。たとえば、

<property name="randomNumber" value="#{T(java.lang.Math).random()}"/> 
spelは式の値を計算します。
SPel式は様々な演算子をサポートしています。これらの演算子を使って式の値を計算できます。
spelを使って集合から元素を選別する:
springのutil namespaceの要素を使ってセットを定義します。

<util:list id="cities">
<bean class="com.habuma.spel.cities.City"
p:name="Chicago" p:state="IL" p:population="2853114"/>
<bean class="com.habuma.spel.cities.City"
p:name="Atlanta" p:state="GA" p:population="537958"/>
<bean class="com.habuma.spel.cities.City"
p:name="Dallas" p:state="TX" p:population="1279910"/>
<bean class="com.habuma.spel.cities.City"
p:name="Houston" p:state="TX" p:population="2242193"/>
</util:list>
spelを使って集合をスクリーニングします。
<property name=「chosenCity」value=「啝{cities[2]」/>、
[]オペレータはMapをスクリーニングしてもいいです。citisはMapタイプだと仮定しています。
[]Proptiesタイプを操作する
<util:properties id=「settings」
location=「classipath:settings.properties」/>ラベルを使って一つのpropertiesファイルを読みだします。

<property name="accessToken" value="#{settings['twitter.accessToken']}"/>

                 
<property name="bigCitis" value="#{cities.?[population gt 10000]}"/>      10000 cities      bigCitis  ,    (.?[])  ,    (.^[]            , .$[]           )
                        
<property name="cityNames" value="#{cities.![name + ", " + state]}"/>
締め括りをつける
以上、本文ではSpring spel表現の使い方の例についての全部の内容を紹介しました。