从头认识Spring-1.15 对SpEl的值的操作(1)-数值运算
这一章节我们来讨论一下对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
从头认识Spring-1.15 对SpEl的值的操作(1)-数值运算的更多相关文章
- [原创]java WEB学习笔记100:Spring学习---Spring Bean配置:SpEL详细介绍及代码演示
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- spring注解@Value取不到值【转】
spring注解@Value取不到值 今天在一个项目中发现一个情况,在Service中取不到name值,直接输出了{name}字符串,找了好久,最后在一篇文章中找到解决方案. 解决这个问题的一篇文章( ...
- Spring 获取propertise文件中的值
Spring 获取propertise文件中的值 Spring 获取propertise的方式,除了之前的博文提到的使用@value的注解注入之外,还可以通过编码的方式获取,这里主要说的是要使用Emb ...
- Spring Boot项目指定启动后执行的操作
Spring Boot项目指定启动后执行的操作: (1)实现CommandLineRunner 接口 (2)重写run方法 (3)声明执行顺序@Order(1),数值越小,优先级越高 (4)如果需要注 ...
- spring的15个经典面试题
总结Spring框架的15个经典面试题. 什么是Spring框架? Spring是一种轻量级框架,旨在提高开发人员的开发效率以及系统的可维护性. 我们一般说的Spring框架就是Spring Fram ...
- Spring学习笔记--在SpEL中筛选集合
要用到Spring的util(包括util:list等),xml文件中的beans中需要添加一些有关util的信息: <?xml version="1.0" encoding ...
- Spring表达式语言之SpEL
•Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. •语法类似于 EL:SpEL 使用 #{…} 作为定界符,所有在大框号中的字符都将被认为是 SpEL ...
- Spring IOC机制使用SpEL
一.SpEL 1.1 简介 Spring Expression Language,Spring表达式语言,简称SpEL.支持运行时查询并可以操作对象图. 和JSP页面上的EL表达式.Str ...
随机推荐
- NYOJ16 矩形嵌套 【DAG上的DP/LIS】
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c ...
- php 快速上手
基本语法 PHP 标记 php 以 <?php 和 ?>(可以选用, 推荐, 防止输出空白) 作为开始和结束标记. 打印 php 有 echo(多参数) 和 print(单参数) 可以用于 ...
- POJ 3713 Transferring Sylla (三连通图)
[题目链接] http://poj.org/problem?id=3713 [题目大意] 给出一个图判断是不是三连通图,三连通图的意思是对于图中任意两点, 至少有三条路是可以相互连通的. [题解] 我 ...
- MySQL区间统计SQL
SELECT elt( INTERVAL ( datediff(END_DATE, CURDATE()), 1, 201, 401, 601 ), '0-200', '200-400', '400-6 ...
- 队列 LinkedBlockingQueue
1 api java.util.concurrent包下的新类.LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现. Li ...
- SQL的连接(外连接、内连接、交叉连接和自连接)
在查询多个表时,我们经常会用到连接查询,连接是关系型数据库的主要特点,也是它区别于其他类型的数据库管理系统的一个标志. 一.什么是连接查询 连接查询:根据两个表或者多个表的列之间的关系,来从这些表中查 ...
- 【Linux】Linux下 环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别【转】
转自:http://blog.csdn.net/qiao1245/article/details/44650929 ------------------------------------------ ...
- JAVA常见算法题(四)
package com.xiaowu.demo; /** * 将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. * * * @author WQ * */ public class ...
- perl一次读取多行文本的策略
在处理文本时,经常遇到这种情况:就是我们须要把两行文本做一个比較,然后选择性输出. 而在while(<FILEHAND>){do something}程序块中默认仅仅能一次读取一行.笔者在 ...
- HDU 2767 Proving Equivalences (强联通)
pid=2767">http://acm.hdu.edu.cn/showproblem.php?pid=2767 Proving Equivalences Time Limit: 40 ...