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. jquery datatable的详细用法

    1,首先需要引用下面两个文件 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css ...

  2. 06 java 基础:java 循环 递归

    1 递归实现 1 + 2 +3 +4 +5 + .... +100 public static int addSum(int num){ if(num == 1) return 1; return n ...

  3. hdu 1690 Bus System (有点恶心)

    Problem Description Because of the huge population of China, public transportation is very important ...

  4. C和指针之学习笔记(4)

    第9章 字符串 字符串的输入与输出 int  ch;  char strings[80];  FILE *input; (1)scanf(“%c”,&ch);   printf(“%c \n” ...

  5. POJ 3228 [并查集]

    题目链接:[http://poj.org/problem?id=3228] 题意:给出n个村庄,每个村庄有金矿和仓库,然后给出m条边连接着这个村子.问题是把所有的金矿都移动到仓库里所要经过的路径的最大 ...

  6. Eigen学习笔记1:在VS2015下Eigen(矩阵变换)的配置

    一.Eigen简介 Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法. Eigen适用范围广,支持包括固定大小.任意大小的所有矩阵操作,甚至是稀疏矩阵:支持 ...

  7. [BZOJ4517][SDOI2016]排列计数(错位排列)

    4517: [Sdoi2016]排列计数 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 1616  Solved: 985[Submit][Statu ...

  8. 检测使用内存memory_get_usage,执行时间microtime

    最近经常用一些扩展,适当比较所占内存,还有一些扩展执行时间长,检测一下每步的执行时间,可以加以修正调整一下源码 查看运行时间 microtime() #返回当前 Unix 时间戳和微秒数. echo ...

  9. 小识.htaccess文件

    .htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户 ...

  10. HDU 5640 King's Cake GCD

    King's Cake 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5640 Description It is the king's birthd ...