SpEL使用示例

    <bean id="chineseA" class="com.xxx.bean.Chinese" scope="prototype">
<constructor-arg value="Li Lei"/>
<constructor-arg value="15"/>
<constructor-arg ref="dogA"/>
</bean> <!-- SpEL示例 -->
<bean id="americanB" class="com.xxx.bean.American">
<!-- 直接赋值 -->
<property name="name" value="#{'Mike Sui'}" />
<!-- T()访问类的静态域与运算符的使用 -->
<property name="age" value="#{T(java.lang.Math).random() * 10}" />
<!-- 使用其他类实例成员赋值 -->
<property name="pet" value="#{americanA.pet}" />
</bean> <bean id="americanC" class="com.xxx.bean.American">
<property name="name" value="#{americanB.name}" />
<!-- 运算符的使用 -->
<!-- 包括 gt(>), eq(=), lt(<), ge(>=), le(<=) -->
<!-- 逻辑运算符 and, or, not -->
<property name="age" value="#{(americanB.age gt 10) and (americanB.age le 18)? americanB.age : 10}" />
<!-- 正则的使用 -->
<property name="validEmail" value="#{americanB.email matches '[a-zA-Z0-9._]+@[a-zA-Z0-9.]+\\.com'}" />
<!-- 安全取值操作符 "?.", 为NULL是不会执行下步操作 -->
<property name="petName" value="#{americanA.getPet()?.getName}" /> </bean> <!-- util 集合的使用 -->
<util:list id="cities">
<bean class="com.xxx.bean.City"
p:name="Beijing" p:population="1500000" />
<bean class="com.xxx.bean.City"
p:name="Shanghai" p:population="2000000" />
<bean class="com.xxx.bean.City"
p:name="Shaoguan" p:population="400000" />
<bean class="com.xxx.bean.City"
p:name="Hangzhou" p:population="800000" />
</util:list> <bean id="chinese" class="com.xxx.bean.Chinese">
<!-- 集合成员的访问 -->
<property name="city" value="#{cities[2]}" />
<property name="country" value="#{countries['Dallas']}" />
<!-- 集合成员的过滤 ".?[]" 操作符的使用 -->
<!-- 筛选人口多余1000000的城市 -->
<property name="myCities" value="#{cities.?[population gt 1000000]}" />
<!-- 获取集合中所有成员的某个属性 ".![]" 操作符的使用 -->
<property name="cityNames" value="#{cities.?[population gt 1000000].![name]}" />
<!-- 获取集合中第一个和最后一个匹配项 ".^[] .$[]的使用" -->
<property name="firstCity" value="#{cities.^[population gt 1000000]}" />
<property name="lastCity" value="#{cities.$[population gt 1000000]}" />
</bean>

SpEL笔记的更多相关文章

  1. [原创]java WEB学习笔记100:Spring学习---Spring Bean配置:SpEL详细介绍及代码演示

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. Spring实战学习笔记之SpEL表达式

            在Spring XML配置文件中装配Bean的属性和构造参数都是静态的,而在运行期才知道装配的值,就可以使用SpEL实现         SpEL表达式的首要目标是通过计算获得某个值. ...

  3. Spring3表达式语言(SpEL)学习笔记

    最新地址请访问:http://leeyee.github.io/blog/2011/06/19/spring-expression-language Spring Excpression Langua ...

  4. Spring学习笔记--在SpEL中筛选集合

    要用到Spring的util(包括util:list等),xml文件中的beans中需要添加一些有关util的信息: <?xml version="1.0" encoding ...

  5. Spring学习笔记--Spring表达式语言SpEL

    Spring3引入了Spring表达式语言(Spring Expression Language,SpEL).SpEL是一种强大的.简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean ...

  6. spring in action 学习笔记十三:SpEL语言(Spring Expression Language)

    SpEl语言的目的之一是防止注入外部属性的代码硬代码化.如@Value("#{student.name}")这个注解的意思是把Student类的name的属性值注入进去.其中stu ...

  7. Spring学习笔记(14)——SpEL

    是什么 Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL",类似于Struts2x中使用的OGNL表达式语 ...

  8. Spring4学习笔记 - SpEL表达式

  9. Spring Boot笔记二:快速创建以及yml文件自动注入

    上个笔记写了如何自己去创建Spring boot,以及如何去打jar包,其实,还是有些麻烦的,我们还自己新建了几个文件夹不是. Idea可以让我们快速的去创建Spring boot应用,来看 一.快速 ...

随机推荐

  1. python和shell间变量互相传递

    Python -> shell: 参考文章 1.环境变量 import os var=123或var=’123’ os.environ[’var’]=str(var) #environ的键值必须 ...

  2. DotNetOpenAuth实践之Windows签名制作

    系列目录: DotNetOpenAuth实践系列(源码在这里) 在上篇中我们搭建了一个简单的认证服务器,里面使用到了Windows签名证书,这一篇则是教大家如何制作Windows签名证书,下面进入正题 ...

  3. php抓取一个页面的图片

    思路: 1.找到一个页面 2.正则过滤所有的img 3.正则过滤出所有的src的属性 4.获取链接信息,写入文件 file_get_contents(), file_put_contents() 5. ...

  4. Python实现图片转文字并翻译至剪切板

    一.环境搭建: 1.PySimpleGUI: pip3 install pysimplegui 2.pytesseract需要有tesseract环境才行: 1. 先搭建tesseract: brew ...

  5. Vim的一些补充

    查看当前路径 :pwd 切换当前路径到当前打开文件所在路径 :cd %:p:h 解释: %表示当前文件名,%:p表示包含文件名的全部路径,%:p:h表示文件所在路径(head of the full ...

  6. post登录趴一趴百度贴吧美女

    本次爬取的贴吧是百度的美女吧,给广大男同胞们一些激励 在爬取之前需要在浏览器先登录百度贴吧的帐号,各位也可以在代码中使用post提交或者加入cookie 爬行地址:http://tieba.baidu ...

  7. codeforces 220 C. Game on Tree

    题目链接 codeforces 220 C. Game on Tree 题解 对于 1节点一定要选的 发现对于每个节点,被覆盖切选中其节点的概率为祖先个数分之一,也就是深度分之一 代码 #includ ...

  8. 【KM】BZOJ1937 [Shoi2004]Mst 最小生成树

    这道题拖了好久因为懒,结果1A了,惊讶∑( 口 || [题目大意] 给定一张n个顶点m条边的有权无向图.现要修改各边边权,使得给出n-1条边是这张图的最小生成树,代价为变化量的绝对值.求最小代价之和. ...

  9. Varnish与Squid的对比

    Varnish与Squid的对比 说到Varnish,就不能不提Squid.Squid是一个高性能的代理缓存服务器,它和Varnish相比较有诸多的异同点,下面进行分析. 下面是Varnish与Squ ...

  10. 如何使用Eclipse插件—Easy Explorer

    Easy Explorer是一个Eclipse插件,主要用于快速浏览项目文件的目录,实用性比较强. 使用方法如下: 1.下载Easy Explorer,从此处下载EasyExplorer:http:/ ...