Spring学习记录(七)---表达式语言-SpEL
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的更多相关文章
- 7 -- Spring的基本用法 -- 12... Spring 3.0 提供的表达式语言(SpEL)
7.12 Spring 3.0 提供的表达式语言(SpEL) Spring表达式语言(简称SpEL)是一种与JSP 2 的EL功能类似的表达式语言,它可以在运行时查询和操作对象图.支持方法调用和基本字 ...
- 我的Spring学习记录(二)
本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...
- Sping表达式语言--SpEL
Spring表达式语言---SpEL 是一个支持运行时查询和操作对象的强大的表达式语言 语法类似于EL:SpEL使用#{...}作为定界符,所有在大括号中的字符都将被认为是SpEL SpEL为bean ...
- 我的Spring学习记录(四)
虽然Spring管理这我们的Bean很方便,但是,我们需要使用xml配置大量的Bean信息,告诉Spring我们要干嘛,这还是挺烦的,毕竟当我们的Bean随之增多的话,xml的各种配置会让人很头疼. ...
- 我的Spring学习记录(五)
在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...
- Spring 学习记录3 ConversionService
ConversionService与Environment的关系 通过之前的学习(Spring 学习记录2 Environment),我已经Environment主要是负责解析properties和p ...
- Spring 学习记录8 初识XmlWebApplicationContext(2)
主题 接上文Spring 学习记录7 初识XmlWebApplicationContext refresh方法 refresh方法是定义在父类AbstractApplicationContext中的. ...
- Spring 学习记录6 BeanFactory(2)
主题 除了Spring 学习记录5 BeanFactory 里写的几个接口外,BeanFactory的实现类还实现了一些其他接口,这篇文章主要介绍这些接口和实现类. 结构 DefaultListabl ...
- Spring学习笔记--Spring表达式语言SpEL
Spring3引入了Spring表达式语言(Spring Expression Language,SpEL).SpEL是一种强大的.简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean ...
随机推荐
- .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧
那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...
- How to configure security of ActiveMQ ?
Terms {activemq.home}: The ActiveMQ installation folder. How to configure ActiveMQ to use JAAS Authe ...
- [svg翻译教程]椭圆(ellipse元素)和线(line元素)
line 先看个例子,这是svg中最简单的线 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http:/ ...
- mysql中生产表格多列统计问题
for Example: select date_format(date,'%Y-%m-%d') as day, count(case when xinghao='a' then 1 end) as ...
- Python中的map( )和reduce( )
1.变量可以指向函数,也可以使用变量和参数的形式完成函数调用. 2.那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算 ...
- 【JBOSS】User not found SA
启动JBOSS 发现报User not found: SA 错误, 找了老半天才找到处理方法,异常日志如下: java.sql.SQLException: User not found: SA at ...
- weex逻辑控制
在WEEX中,有if 和 repeat 两种逻辑运算,需要注意的是,逻辑控制不能够作用于<template>这样的根节点. if 控制判断条件true/false直接对节点进行操作,if= ...
- Master-Slave通用基础框架
一.设计目的 设计出一个通用的Master-Slave基础框架,然后可以基于这个框架来实现特定的业务需求,比如实现多节点并行计算.分布式处理等. 二.设计理念 基于经典的命令模式,Master和Sla ...
- Smart3D系列教程6之 《案例实战演练3——倾斜数据正射影像及DSM的生产》
一.前言 Wish3D出品的系列教程中,前面两讲分别讲述说明了小物件的照片三维重建.大区域地形的三维重建,从照片的直接导入至软件到通过Excel表格将区块导入处理,从不同的模型类别.不同的导入方式演示 ...
- HDU2818 并查集
Building Block Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...