一、SpEL

  1.1       简介

      Spring Expression Language,Spring表达式语言,简称SpEL。支持运行时查询并可以操作对象图。

      和JSP页面上的EL表达式、Struts2中用到的OGNL表达式一样,SpEL根据JavaBean风格的getXxx()、setXxx()方法定义的属性访问对象图,完全符合我们熟悉的操作习惯

  1.2       基本语法

      SpEL使用#{…}作为定界符,所有在大框号中的字符都将被认为是SpEL表达式。

  1.3       使用字面量

      ●整数:<property name="count" value="#{5}"/>

      ●小数:<property name="frequency" value="#{89.7}"/>

      ●科学计数法:<property name="capacity" value="#{1e4}"/>

      ●String类型的字面量可以使用单引号或者双引号作为字符串的定界符号

        <property name=“name” value="#{'Chuck'}"/>

        <property name='name' value='#{"Chuck"}'/>

      ●Boolean:<property name="enabled" value="#{false}"/>

  1.4       引用其他bean

<bean id="emp04" class="com.neuedu.parent.bean.Employee">

<property name="empId" value="1003"/>

<property name="empName" value="Kate"/>

<property name="age" value="21"/>

<property name="detp" value="#{dept}"/>

</bean>

  1.5       引用其他bean的属性值作为自己某个属性的值

<bean id="emp05" class="com.neuedu.parent.bean.Employee">

<property name="empId" value="1003"/>

<property name="empName" value="Kate"/>

<property name="age" value="21"/>

<property name="deptName" value="#{dept.deptName}"/>

</bean>

  1.6       调用非静态方法

<!-- 创建一个对象,在SpEL表达式中调用这个对象的方法 -->

<bean id="salaryGenerator" class="com.neuedu.spel.bean.SalaryGenerator"/>

<bean id="employee" class="com.neuedu.spel.bean.Employee">

<!-- 通过对象方法的返回值为属性赋值 -->

<property name="salayOfYear" value="#{salaryGenerator.getSalaryOfYear(5000)}"/>

</bean>

  1.7       调用静态方法

<bean id="employee" class="com.neuedu.spel.bean.Employee">

<!-- 在SpEL表达式中调用类的静态方法 -->

<property name="circle" value="#{T(java.lang.Math).PI*20}"/>

</bean>

  1.8       运算符

      ①算术运算符:+、-、*、/、%、^

      ②字符串连接:+

      ③比较运算符:<、>、==、<=、>=、lt、gt、eq、le、ge

      ④逻辑运算符:and, or, not, |

      ⑤三目运算符:判断条件?判断结果为true时的取值:判断结果为false时的取值

      ⑥正则表达式:matches

Spring IOC机制使用SpEL的更多相关文章

  1. Spring IOC机制之使用注解配置bean

    一. 通过注解配置bean 1.1       概述 相对于XML方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件化开发的理念十分契合,是开发中常用的使用方式. 1.2       ...

  2. Spring IOC容器分析(4) -- bean创建获取完整流程

    上节探讨了Spring IOC容器中getBean方法,下面我们将自行编写测试用例,深入跟踪分析bean对象创建过程. 测试环境创建 测试示例代码如下: package org.springframe ...

  3. Spring Ioc工作机制 初步

    Spring IoC工作原理 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖 ...

  4. Spring IOC的核心机制:实例化与注入

    上文我们介绍了IOC和DI,IOC是一种设计模式,DI是它的具体实现,有很多的框架都有这样的实现,本文主要以spring框架的实现,来看具体的注入实现逻辑. spring是如何将对象加入容器的 spr ...

  5. Spring学习-spring核心机制-IOC依赖注入

    转载自:http://www.cnblogs.com/chenssy/archive/2012/11/11/2765266.html 今天复习一下spring两大特性之一:IOC依赖注入,看了一下大佬 ...

  6. (反射+内省机制的运用)简单模拟spring IoC容器的操作

    简单模拟spring IoC容器的操作[管理对象的创建.管理对象的依赖关系,例如属性设置] 实体类Hello package com.shan.hello; public class Hello { ...

  7. 深入理解Spring IoC容器和动态代理机制

    Deployment期间验证 实现一: <bean id="theTargetBean" class="..."/> <bean id=&qu ...

  8. 关于Spring IOC (DI-依赖注入)需要知道的一切

    关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 <Spring入门经典>这本书无论对于初学者或者有 ...

  9. 关于Spring IOC (DI-依赖注入)

    <Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初 ...

随机推荐

  1. Oracle 常见进程

    1 服务器进程 专用服务器连接:数据连接跟服务器上的一个进程之间存在1:1的映射 共享服务器连接:多个会话共享一个服务器进程池,由一个调度程序分配 1.1 专用服务器连接 专用服务器连接模式下,客户连 ...

  2. python读取配置文件 ConfigParser

    Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件. 配置文件的格式 a) 配置文件中包含一个或多个 section, 每个 section 有自己的 opt ...

  3. 解决springMVC文件上传报错: The current request is not a multipart request

    转自:https://blog.csdn.net/HaHa_Sir/article/details/79131607 解决springMVC文件上传报错: The current request is ...

  4. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

  5. Delphi Android 询问框

    Delphi Android 询问框 http://community.embarcadero.com/blogs/entry/xe7-dialog-box-methods-support-anony ...

  6. JS中,split()用法(将字符串按指定符号分割成数组)

    <!DOCTYPE html> <html> <head> <meta charset="{CHARSET}"> <title ...

  7. 【WebRTC】术语

    WebRTC,名称源自网页实时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API.它于2011年6月1日开源并在Goog ...

  8. 认识RESTFul

    背景1. 概念提出者:Fielding2. 全写:Representational State Transfer,(资源的)表现层状态转化?3. http://www.ruanyifeng.com/b ...

  9. C++指针作为函数的参数进行传递时注意的问题

    应注意问题: 当指针作为函数的参数进行传递的时候,本质上还是进行的"值传递",也就是复制了一个新的指向该地址的指针变量. 只有在被调函数中,对指针进行引用操作,才可以达到不需要返回 ...

  10. 前端学习笔记2017.6.12 DIV布局网页

    DIV的功能就是把网页划分成逻辑块的. 看下豆瓣东西页面的布局,我们来分析下. 按照先从上到下的原则,把这个页面分成几个块: 首先是最顶端的这个条,这是一个DIV,我们给它起个名字,叫banner 然 ...