这一章节我们来讨论一下对SpEl的值的运算。

1.domain

烤炉类:(不变)

package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17;

public class Oven {
private String name = ""; private double size = 0; public double getSize() {
return size;
} public void setSize(double size) {
this.size = size;
} @Override
public String toString() {
return name + " size:" + size;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }

厨师类:(为了方便,降低了friend的属性)

package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17;

public class Chief {

	private String name = "";

	private Oven oven;

	public String getName() {
return name;
} public Oven getOven() {
return oven;
} public void setName(String name) {
this.name = name;
} public void setOven(Oven oven) {
this.oven = oven;
} public void userOven() {
System.out.println(name + " use " + oven);
} }

2.測试类:(不变)

package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"/com/raylee/my_new_spring/my_new_spring/ch01/topic_1_17/ApplicationContext-test.xml" })
public class ChiefTest { @Autowired
private ApplicationContext applicationContext; @Test
public void testChief() {
Chief jack = (Chief) applicationContext.getBean("jack");
jack.userOven();
Chief mike = (Chief) applicationContext.getBean("mike");
mike.userOven();
Chief rose = (Chief) applicationContext.getBean("rose");
rose.userOven();
}
}

3.配置文件:(重点)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <bean id="smallOven"
class="com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17.Oven"
p:name="smallOven" p:size="#{2*3}" /> <bean id="midOven"
class="com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17.Oven"
p:name="smallOven" p:size="#{T(java.lang.Math).PI*4}" /> <bean id="bigOven"
class="com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17.Oven"
p:name="smallOven" p:size="#{smallOven.getSize()*4}" /> <bean id="mike"
class="com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17.Chief"
p:name="mike">
<property name="oven" ref="smallOven" />
</bean> <bean id="jack"
class="com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17.Chief"
p:name="jack">
<property name="oven" ref="midOven" />
</bean> <bean id="rose"
class="com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17.Chief"
p:name="rose">
<property name="oven" ref="bigOven" />
</bean>
</beans>

配置文件的重点就是看Oven里面的size属性。在这里我们能够通过执行符来计算我们须要的值,直接对SpEl的值进行操作。

測试输出:

jack use smallOven size:12.566370614359172
mike use smallOven size:6.0
rose use smallOven size:24.0

我们上面仅仅是演示了乘法,它有:+ 加 - 减 * 乘 / 除 % 模 ^平方 这几种运算方式,大家后面能够逐一尝试。

总结:这一章节我们讨论了对SpEl的值的运算。

文件夹:http://blog.csdn.net/raylee2007/article/details/50611627

我的github:https://github.com/raylee2015/my_new_spring

从头认识Spring-1.15 对SpEl的值的操作(1)-数值运算的更多相关文章

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

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

  2. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. spring注解@Value取不到值【转】

    spring注解@Value取不到值 今天在一个项目中发现一个情况,在Service中取不到name值,直接输出了{name}字符串,找了好久,最后在一篇文章中找到解决方案. 解决这个问题的一篇文章( ...

  4. Spring 获取propertise文件中的值

    Spring 获取propertise文件中的值 Spring 获取propertise的方式,除了之前的博文提到的使用@value的注解注入之外,还可以通过编码的方式获取,这里主要说的是要使用Emb ...

  5. Spring Boot项目指定启动后执行的操作

    Spring Boot项目指定启动后执行的操作: (1)实现CommandLineRunner 接口 (2)重写run方法 (3)声明执行顺序@Order(1),数值越小,优先级越高 (4)如果需要注 ...

  6. spring的15个经典面试题

    总结Spring框架的15个经典面试题. 什么是Spring框架? Spring是一种轻量级框架,旨在提高开发人员的开发效率以及系统的可维护性. 我们一般说的Spring框架就是Spring Fram ...

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

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

  8. Spring表达式语言之SpEL

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

  9. Spring IOC机制使用SpEL

    一.SpEL 1.1       简介 Spring Expression Language,Spring表达式语言,简称SpEL.支持运行时查询并可以操作对象图. 和JSP页面上的EL表达式.Str ...

随机推荐

  1. slice,splice,substr,substring函数的区别

    slice: 语法:array.slice(startIndex,endIndex); 参数: startIndex:必须,规定从何处开始选取,如果为负则从尾部开始计算 : endIndex:可选,规 ...

  2. HDU 6113 度度熊的01世界【DFS/Flood Fill】

    度度熊的01世界 Accepts: 967 Submissions: 3064 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...

  3. sqlldr control file compare with HEX value

    when field= UTL_I18N.RAW_TO_CHAR ('e38080', 'AL32UTF8')

  4. [POI2014]Cards

    题目大意: 有$n(n\le2\times10^5)$张卡片排成一排,每张卡片正反面有两个数$a_i$和$b_i$.$m(m\le10^6)$次操作,每次交换第$c_i$和第$d_i$张卡片,问若可以 ...

  5. CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...

    Xcode 升级到 6.0 后,更新 CocoaPods,出现了如下的警告 [!] The `Paopao [Debug]` target overrides the `PODS_ROOT` buil ...

  6. Debian下载地址

    http://cdimage.debian.org/cdimage/archive/

  7. md5是哈希算法的改进加强,因为不同原始值可能hash结果一样,但md5则改善了用于验证消息完整性,不同md5值原始值也必将不一样

    md5是哈希算法的改进加强,因为不同原始值可能hash结果一样,但md5则改善了用于验证消息完整性,不同md5值原始值也必将不一样

  8. JAVA常见算法题(十三)

    package com.xiaowu.demo; /** * 企业发放的奖金根据利润提成: 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10 ...

  9. 为docker创建ubuntu带SSH的基础镜像

    安装Debootstrap ubuntu操作系统:apt install debootstrap centos操作系统:yum install debootstrap 构建基础Ubuntu的rootf ...

  10. 怎样从server获取图片

    今天写了安卓程序与server通信.当中须要从server获取图片.本来以为下载流.处理文件流非常复杂.结果几句话就轻松搞定了.如今记在这里. // (2014.5.1第一种方法)通过server返回 ...