Spring笔记3---表达式装配

本节主要是表达式装配! 解决运行时动态值的装配问题!

----------------------------------

1 字面值

<property name="count" value="#{5}"/>

<property name="message" value="the value is #{5}"/>

<property name="f" value="#{89.7}"/>

<property name="c" value="#{1e4}"/>

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

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

<property name="n" value="#{false}"/>

2 引用Bean Properties和方法

<property name="is" value="#{beanId}" />

 <property name="x" value="#{kenny.song}" />

<property name="song" value="#{a.method()}" />

<property name="song" value="#{a.method().toUpperCase() }" />

为了避免空指针

<property name="song" value="#{a.method()?.toUpperCase() }" />

3 操作类

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

<property name="x" value="#{T(java.lang.Math).random() } "  />

4 运算符

算术运算 + - * / % ^

关系运算  < > == <= >= lt gt eq le ge

逻辑运算 and or not |

条件运算 ?:(ten)

正则表达式 matches

5 数值运算

<property name="x" value="#{counter.aaa+42}" />

<property name="x" value="{a.c+ ' ' + a.b}"/>

<property name="aaa" value="#{shape.kind =='ccc' and shape.xxx gt 10}" />

 <property name="aaa" value="#{!shape.available}" />

  <property name="aaa" value="#{not shape.available}" />

 <property name="aaa" value="#{shape.available? a:b}" />

 <property name="aaa" value="#{shape.available? :b}" />跟上面等价!

操作集合

<util:list id="cities">

<bean class="xxx" p:name="xx" p:state="li" p:pu="x" />

 <bean class="xxx" p:name="xx" p:state="li" p:pu="x" />

<bean class="xxx" p:name="xx" p:state="li" p:pu="x" />

<bean class="xxx" p:name="xx" p:state="li" p:pu="x" />

<bean class="xxx" p:name="xx" p:state="li" p:pu="x" />

<bean class="xxx" p:name="xx" p:state="li" p:pu="x" />

</util:list>

接着使用它

<property name="s" value="#{cities[2]}" />

如果是取map里的对象

<property name="s" value="#{cities['ss']}" />

======================================

从配置文件初始化properties

<util:properties id="s" location="classpath:a.b.name"/>

环境变量

<property name="s" value="#{systemEnvironment['name']}" />

如果想从一个集合中查出若干条件的

<property name="a" value="#{cities.?[ member gt 1000]}" />

结果是一个新的集合

而.^[]和.$[]分别查出第一个和最后一个匹配项。

=====聊聊投影集合

<property name="c" value="#{cities.![name]}" />结果是一个集合。

 <property name="c" value="#{cities.![name +‘, ’+state]}" />结果是一个集合。

 

 

 

 

 

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