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

本文详细介绍了在软件开发中如何使用表达式来实现动态值的装配,包括字面值装配、引用Bean属性和方法、操作类及各种运算符的应用。此外还探讨了从配置文件初始化属性和环境变量的使用。

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

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

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]}" />结果是一个集合。

 

 

 

 

 

转载于:https://my.oschina.net/qiangzigege/blog/366224

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值