SpringEL-HelloWorld


在Spring3中就已经支持EL表达式了, Spring Expression Language(SpEL)是类似于OGNLJSF EL的表达式语言, 能够在运行时构建复杂表达式, 存取对象属性、调用对象方法等, 而且所有的SpEL都支持XML和Annotation两种方式, 使用的格式均为:#{SpEL expression}。

下面的例子,这个例子将展示如何利用SpEL注入String、Bean到属性中。

一、编写Bean类

Customer.java

package com.yiidian.domain;import java.io.Serializable;
/*** * @author http://www.yiidian.com**/
public class Customer implements Serializable{private String name;private String telephone;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}
}

CustomerDao接口:

/*** * @author http://www.yiidian.com**/
public interface CustomerDao {
}

CustomerDaoImpl类:

注意:在这个类中注入Customer对象和custName的字符串。

package com.yiidian.dao.impl;import com.yiidian.dao.CustomerDao;
import com.yiidian.domain.Customer;
/*** @author http://www.yiidian.com**/
public class CustomerDaoImpl implements CustomerDao {private Customer customer;private String custName;public void setCustomer(Customer customer) {this.customer = customer;}public void setCustName(String custName) {this.custName = custName;}@Overridepublic String toString() {return "CustomerDaoImpl [customer=" + customer + ", custName=" + custName + "]";}}

二、编写applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="customer" class="com.yiidian.domain.Customer"><property name="name" value="张三"/><property name="telephone" value="13666666666"/></bean><bean id="customerDao" class="com.yiidian.dao.impl.CustomerDaoImpl"><!--#{customer}:注入Customer对象#{customer.name}: 注入Cutomer的name属性值--><property name="customer" value="#{customer}"></property><property name="custName" value="#{customer.name}"></property></bean></beans>

三、编写测试

package com.yiidian.test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yiidian.dao.CustomerDao;/*** @author http://www.yiidian.com* */
public class Demo1 {@Testpublic void test1() {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");CustomerDao customerDao = (CustomerDao)context.getBean("customerDao");System.out.println(customerDao);}}

四、运行结果

源码下载:http://pan.baidu.com/s/1i4HlQzb

Spring4.x(12)--SpringEL-HelloWorld相关推荐

  1. 《Android应用开发攻略》——1.3 从命令行创建 “Hello, World”应用程序

    1.3 从命令行创建 "Hello, World"应用程序 Ian Darwin 1.3.1 问题 你想在不使用Eclipse ADT插件的情况下创建新的Android项目. 1. ...

  2. python scrapy 入门,10分钟完成一个爬虫

    在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...

  3. java-静态变量,单例模式

    static关键字. 静态变量 static(不在堆里面也不在栈里面, 在数据区(data seg)): --类名直接 . 出来的变量是静态变量, 每个类里面的静态变量只有一份, 是公用的(赋值后每个 ...

  4. asin c语言中 返回值范围_大学C语言考试易错知识点总结

    作者:cggwz 来源:https://blog.csdn.net/cggwz/article/details/103740713?utm_medium=distribute.pc_relevant. ...

  5. Play! Framework 系列(二):play 的项目结构

    在 Play! Framework 系列(一)中我们初步了解了一下 Play! 的各种特性以及优势,那么从现在开始我们将正式接触 Play!.本文将介绍一下 Play! 的整体结构,然后通过一个非常简 ...

  6. Flex与.NET互操作(二):基于WebService的数据访问(上)

    Flex提供了<mx:WebService>.<mx:HTTPService>和<mx:RemoteObject>标签来直接访问远程数据,这用于与各种不同语言环境开 ...

  7. [WCF]利用net.tcp傳輸協定來建置WCF Service

    http://www.dotblogs.com.tw/puma/archive/2009/06/21/wcf-net-tcp-channelfactory-clientbase.aspx 最近很少在寫 ...

  8. dojo/request模块整体架构解析

    总体说明 做前端当然少不了ajax的使用,使用dojo的童鞋都知道dojo是基于模块化管理的前端框架,其中对ajax的处理位于dojo/request模块.一般情况下我们使用ajax请求只需要引入do ...

  9. [转贴]Cocos2d-x3.2与OpenGL渲染总结(一)Cocos2d-x3.2的渲染流程

    看了opengles有一段时间了,算是了解了一下下.然后,就在基本要决定还是回归cocos2dx 3.2的,看了这篇好文章,欣喜转之~ 推荐看原帖: Cocos2d-x3.2与OpenGL渲染总结(一 ...

最新文章

  1. C51单片机中断定义
  2. 大学生职业生涯规划书性格特征_搞定职业生涯规划书,看这里!
  3. (格式化字符串漏洞).fini.array劫持,使程序流程循环进行
  4. 2022.4.9 mac os M1 芯片 12.3.1 Monterey 安装cocoapods
  5. LNMP一键安装包在安装完成后的一些安全设置
  6. zabbix snmp自定义OID nginx监控实例(55)
  7. 计算机图形学E3——OpenGL 中点画圆
  8. 「管理数学基础」3.3 凸分析:凸函数的极值和凸规划
  9. 【数据结构笔记07】不带头结点链表实现多项式相加、相乘
  10. mongodb的常用增删改查命令:
  11. “ji32k7au4a83”被用作密码的次数不太正常
  12. (转F001) Rust : 解引用,自动解引用
  13. Android网络多线程断点续传下载
  14. 【刷题第七天】leetcode611.有效三角形的个数
  15. HTML5期末大作业:小说网页设计——在线阅读7页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  16. 了解Android布局,了解Android对话框布局
  17. ffmpeg 视频码率压缩、质量控制 -crf 和 -qp 参数详解
  18. window.open() 被拦截的问题解决
  19. Excel文件怎样加密?这两种方法值得收藏!
  20. php函数参数中括号,thinkphp手册中函数的可选参数的中括号为什么是包含的关系?...

热门文章

  1. mysql 创建表_每天10分钟带你学会MySQL(三)表的创建
  2. 【Python】画图海龟
  3. mysql 字符串取前缀_mysql截取字符串的函数总结
  4. 数字信号处理——DFT的一些理解
  5. linux NAND驱动之三:6410平台上的NAND驱动加载
  6. mysql中的各种函数(日期函数、字符串函数、数学函数...)
  7. linux恢复桌面,ubuntu恢复unity桌面
  8. Java面试之Synchronized无法禁止指令重排却能保证有序性
  9. MySQL Proxy和 Amoeba 工作机制浅析
  10. 关于quick-cocos2d-x