SpEL---Spring Expression Language:是一个支持运行时查询和操作对象图表达式语言、使用#{...}作为定界符,为bean属性动态赋值提供了便利。

对于普通的赋值,用SpEL也可以,但意义不大,如:

  整数:<property name="count" value="#{5}">
小数:<property name="frequency" value="#{89.5}">
字符串:<property name="name" value="#{"Evan"}"> //要用引号引起来
布尔值:<property name="enabled" value="#{false}">

 ②引用Bean、属性和方法

 <bean id="car" class="com.guigu.spring.autowire.Car"
p:brand="Audi" p:price="200000"></bean>
<!--引用其他对象-- ,相当于 ref="">
<bean id="person" class="com.guigu.spring.autowire.Person"
p:name="Tom" p:car="#{car}"></bean>
<!--引用其他对象的属性-->
<bean id="car2" class="com.guigu.spring.autowire.Car"
p:brand="Baoma" p:price="#{car.price}"></bean>
<!--引用其他对象的方法,还可以链式操作-->
<bean id="car3" class="com.guigu.spring.autowire.Car" p:toString="#{car.toString()}">
<bean id="car3" class="com.guigu.spring.autowire.Car" p:toString="#{car.toString().toUpperCase()}">

支持运算符号

算数运算符:+ - * /

字符串连接符: p:name="#{fullname.first + " " + fullname.lastname}"

比较运算符: > < == >= ...

逻辑运算符:and、or、not

if-else运算符:<property name="answer" value="#{Main.answer()=='A'?A:B}">

正则表达式:matches

 ④调用静态方法或属性:用T()调用一个类的静态方法,它将返回一个Class Object,然后再调用相应的方法或属性

  <bean id="circle" class="com.guigu.spring.autowire.Circle" >
// 调用了PI属性
<property name="zhouchang" value="#{T(java.lang.Math).PI}"></property> </bean>

这样,xml的功能有多了,可以直接做一些调用和判断。

文章问学习记录,还没有深入学习。若有错误,望指正

Spring学习记录(七)---表达式语言-SpEL的更多相关文章

  1. 7 -- Spring的基本用法 -- 12... Spring 3.0 提供的表达式语言(SpEL)

    7.12 Spring 3.0 提供的表达式语言(SpEL) Spring表达式语言(简称SpEL)是一种与JSP 2 的EL功能类似的表达式语言,它可以在运行时查询和操作对象图.支持方法调用和基本字 ...

  2. 我的Spring学习记录(二)

    本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...

  3. Sping表达式语言--SpEL

    Spring表达式语言---SpEL 是一个支持运行时查询和操作对象的强大的表达式语言 语法类似于EL:SpEL使用#{...}作为定界符,所有在大括号中的字符都将被认为是SpEL SpEL为bean ...

  4. 我的Spring学习记录(四)

    虽然Spring管理这我们的Bean很方便,但是,我们需要使用xml配置大量的Bean信息,告诉Spring我们要干嘛,这还是挺烦的,毕竟当我们的Bean随之增多的话,xml的各种配置会让人很头疼. ...

  5. 我的Spring学习记录(五)

    在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...

  6. Spring 学习记录3 ConversionService

    ConversionService与Environment的关系 通过之前的学习(Spring 学习记录2 Environment),我已经Environment主要是负责解析properties和p ...

  7. Spring 学习记录8 初识XmlWebApplicationContext(2)

    主题 接上文Spring 学习记录7 初识XmlWebApplicationContext refresh方法 refresh方法是定义在父类AbstractApplicationContext中的. ...

  8. Spring 学习记录6 BeanFactory(2)

    主题 除了Spring 学习记录5 BeanFactory 里写的几个接口外,BeanFactory的实现类还实现了一些其他接口,这篇文章主要介绍这些接口和实现类. 结构 DefaultListabl ...

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

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

随机推荐

  1. PDA手持扫描资产标签,盘点完成后将数据上传到PC端,固定资产系统查看盘点结果

    固定资产管理系统介绍: 致力于研发条码技术.集成条码系统的专业性公司,针对客户的不同需求,提供一站式的企业条码系统解决方案:包括功能强大的软件系统.安全可靠的无线网络.坚固耐用的硬件系统.灵活易用的管 ...

  2. JQuery.validate.js 表单验证

    官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/API: http://jquery.bassistance.de ...

  3. yotaku的开发日志(1)

    2015-12-18 21:17:46 连续看了几天的ThinkPHP框架,目前看到基于角色的用户访问权限控制. 相关代码如下: 数据库 用户表(管理员) mg_id mg_name mg_pwd m ...

  4. jQuery的加法运算.

    jQuery的加法运算. 加法运算 ?想必大家听到这都会不屑了,加法运算这是多么简单的运算.然而有的时候在jQuery也让人挺头疼的. 常规的是: var num1 = 123; var num2=1 ...

  5. 汉字正则表达式[\u4E00-\u9FFF]原因

    转载易天:正则表达式的汉字匹配 这里是几个主要非英文语系字符范围 2E80-33FFh:中日韩符号区.收容康熙字典部首.中日韩辅助部首.注音符号.日本假名.韩文音符,中日韩的符号.标点.带圈或带括符文 ...

  6. CentOS7 编译安装 Git 服务器 Centos 7.0 + Git 2.2.0 + gitosis (实测 笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 服务器IP:192.168.1.31 域 ...

  7. List、Map、Set三个接口,存取元素时,各有什么特点?

    List  以特定次序来持有元素,可有重复元素:Set  无法拥有重复元素,内部排序(无序):Map 保存key-value值,value可多值.

  8. jquery ui 中的插件开发

    1  $.widget() 必须引用 <script src=")" type="text/javascript"></script> ...

  9. Lua源代码阅读分析问题列表(转)

    最近正在阅读lua源码,遇到座灯塔,转载如下: 我个人的习惯是带着问题去研究一个新题目,比如这次阅读Lua代码,暂列下面这些问题. 1)什么是基于栈.基于寄存器的虚拟机(VM)设计?Lua如何实现基于 ...

  10. C#简单的上位机制作之界面设计

    今天开始打算正式在博客园落户了,写点有用的吧, 一个简单的C#上位机,也就是串口调试助手废话不多说,新建windows应用程序 到这人一个工程就算是新建完成了,然后就是组件的添加了,我们需要在里面添加 ...