- 浏览: 477276 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
excellent95:
谢楼主分享,确实是CSS图片问题
Struts2判断页面是POST方式提交还是GET方式提交 -
wangluo2:
javaBase那个包显示有问题啊pom文件那一行报错了
微信公众平台开发实战(08) 基于地理信息的服务(LBS) -
andilyliao:
jd技术这么渣也好意思出书,真是醉了
《京东技术解密》试读--十年磨一剑 -
bitray:
刘强东作序多什么,他也不会什么技术,腾讯出来帮他还不是因为腾讯 ...
《京东技术解密》试读--十年磨一剑 -
come_for_dream:
想试试搞这个
《大型分布式网站架构设计与实践》试读
Spring 3.0 新特性
1. JUnit4 测试 Spring
关键点:使用AbstractJUnit4SpringContextTests ,可以直接注入Bean
1 、Dao 定义时使用注解@Component("userDao")
2 、测试类使用注解 @ContextConfiguration("classpath:beans.xml")
3 、测试类继承AbstractJUnit4SpringContextTests
4 、测试类直接注入UserDao
@Resource(name = "userDao")
private UserDao userDao;
5 、测试方法直接调用注入的userDao 的方法:userDao.save(new User());
工程名 :SXT_Spring3_01
测试类 :UserDaoTest
需要commons-logging 包
代码清单 1 : UserDao.java
@Component ( "userDao" )
public class UserDaoImpl implements UserDao {
@Override
public void save(User user) {
System. out .println( "a user saved!" );
}
}
代码清单 2 : UserDaoTest.java
@ContextConfiguration( "classpath:beans.xml" )
public class UserDaoTest extends AbstractJUnit4SpringContextTests {
@Resource(name = "userDao" )
private UserDao userDao ;
@Test
public void testSave() throws Exception {
this . userDao .save( new User());
}
}
代码清单 3 : beans.xml
< context:component-scan base-package= "com.coderdream" />
2. 泛型支持
支持泛型取Bean ,不用强制转换了。
工程名 :SXT_Spring3_02
测试类 :UserDaoTest2
代码清单 4 : UserDaoTest2.java
public class UserDaoTest2 {
@Test
public void testSave() throws Exception {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext( "beans.xml" );
UserDao userDao =
applicationContext.getBean( "userDao" , UserDao. class );
userDao.save( new User());
}
}
3. JavaConfig 方式
三种配置方式:XML 、Annotation 和JavaConfig 。
配置信息 在Java 文件 中,即配置过程直接通过编写Java 代码 实现。
需要cglib 和asm 包
3.1. 注入 Dao
工程名 :SXT_Spring3_03_Configuration_Dao
测试类 :UserDaoTest
代码清单 5 : beans.xml
< context:component-scan base-package = "com.coderdream.config" />
代码清单 6 : AppConfig.java
@Configuration
public class AppConfig {
// xml<bean id = "userDao" class="userDao()"
@Bean
public UserDao userDao() {
return new UserDaoImpl();
}
}
测试代码见代码清单4 。
3.2. 注入 Service
使用JavaConfig ,引入UserService ,注入UserDao 。
工程名 :SXT_Spring3_04_Configuration_Dao_Service
测试类 :UserServiceTest
代码清单 7 : AppConfig.java
@Configuration
public class AppConfig {
// xml <bean id = "userDao" class="userDao()"
@Bean
public UserDao userDao() {
return new UserDaoImpl();
}
@Bean
public UserService userService() {
UserServiceImpl userServiceImpl = new UserServiceImpl();
userServiceImpl.setUserDao(userDao());
return userServiceImpl;
}
}
代码清单 7 : UserServiceTest .java
@ ContextConfiguration("classpath:beans.xml" )
public class UserServiceTest extends AbstractJUnit4SpringContextTests {
@Resource (name = "userService" )
private UserService userService ;
@Test
public void testSave() throws Exception {
this .userService .add(new User());
}
}
4. SpEL ( Spring EL )
4.1. 简单应用
1、 表达式直接取对象的值
2、 表达式自动处理对象(取对象的属性等等)
工程名 :SXT_Spring3_05_SpEL_01
测试类 :SpelTest_Sample
代码清单 7 : SpelTest_Sample .java
public class SpelTest_Sample {
@Test
public void test01() throws Exception {
ExpressionParser expressionParser = new SpelExpressionParser();
Expression expression =
expressionParser.parseExpression("'Hello,World'" );
System.out .println(expression.getValue());
}
@Test
public void test02() throws Exception {
User user = new User();
user.setUsername("zhangsan" );
EvaluationContext evaluationContext =
new StandardEvaluationContext(user);
ExpressionParser expressionParser =
new SpelExpressionParser();
Expression expression =
expressionParser.parseExpression("username" );
System.out .println(expression.getValue(evaluationContext));
System.out .println(expression.getValue(user));
}
}
4.2. 复杂应用
表达式直接使用Java 工具类取值、获取系统属性值
工程名 :SXT_Spring3_06_SpEL_02
测试类 :SpelTest_Sample2
代码清单 8 : MyBean .java
public class MyBean {
private double randomNumber ;
private String userRegion ;
// getter & setter
}
代码清单 9 : beans.xml
< bean id = "myBean" class = "com.coderdream.spel.MyBean">
< property name = "randomNumber"
value = "#{T(java.lang.Math).random()*100}" />
< property name = "userRegion"
value = "#{systemProperties['user.country']}" />
</ bean >
代码清单 10 : SpelTest_Sample2.xml
@ ContextConfiguration("classpath:beans.xml" )
public class SpelTest_Sample2 extends AbstractJUnit4SpringContextTests {
@Resource
private MyBean myBean ;
@Test
public void test01() throws Exception {
System.out .println(myBean .getRandomNumber());
System.out .println(myBean .getUserRegion());
}
}
5. 源代码
见附件。
我的联系方式: 85337464
我的博客: http://coderdream.iteye.com
- SXT_Spring_30.rar (57.5 KB)
- 下载次数: 41
- Spring3.0新特性.pdf (305.4 KB)
- 下载次数: 129
发表评论
-
Spring Security 3.0 记住密码功能
2016-01-13 22:58 21141,在数据库中新增记录表 -- ---------- ... -
解决JavaMail发邮件抛出找不到SharedByteArrayInputStream类的异常
2011-07-22 11:21 7699在最近项目开发过程中 ... -
怎样让Word自动更新图片与表格编号
2010-12-31 17:03 11737怎样让Word 自动更新图片与表格编号 ... -
W3C_School在线教程chm版制作教程
2010-12-22 21:48 7673W3C_School 在线教程chm 版制作教程 ... -
String与StringBuffer区别详解
2010-12-17 17:19 3289String 与StringBuffe ... -
iText生成PDF时表头设置错误导出数据不能完全导出
2010-07-20 12:16 2186在利用iText生成PDF文件时,通常由于数据量比较多时会产生 ... -
事务管理入门-JDBC/Hibernate事务管理器/Spring注解 3种方式
2009-07-28 15:09 4684在软件开发过程中,经 ... -
JavaMail
2009-07-16 16:56 0javamail 怎样设置发件人的名字 http://to ... -
IBM Ajax系列教程
2009-02-16 20:39 1736第 1 部分: Ajax 简介 Ajax ... -
项目经验之弹出页面再弹出页面
2009-02-13 18:58 1106在项目中有这样一个场景,某弹出页面要弹出另一个: 弹出页面: ... -
正则表达式使用之替换多个字符串
2009-02-13 15:44 2566想一次性去掉某个文本文件中的某些字符串: 实现方式: 直接用竖 ... -
OGNL的jar档、文档和源代码
2009-02-05 09:25 52201、官方网站: http://mirrors.ibiblio. ... -
Calendar与java.sql.Date
2008-12-08 15:29 1705在Oracle数据库中,我们会有Date类型的数据,存储格 ... -
利用JavaScript控制单选框
2008-12-04 19:14 2308<script> function f(index ... -
JSP中使用JavaScript重定向页面
2008-12-03 10:04 3360第一种,不重定向,推荐使用。 function init( ... -
如何去掉 Code Pro 的警告标志
2008-11-07 16:35 1338Code Pro 是一个很好的代码格式检查工具,不过有时我们只 ... -
使用Struts提交多行数据
2008-11-07 11:27 3921使用Struts提交多行数据 http://blog.fl ... -
Ant使用经验
2008-10-22 10:18 12931、【示例1】: <?xml version=" ... -
利用JXL(JExcelApi)操作Excel文档
2008-10-09 10:51 52461、工具类: package com.coderdream. ... -
JSP下载文档
2008-10-07 14:08 19201、设置doc格式的文件弹出对话框: <?xml v ...
相关推荐
### Spring 3.0 新特性详解 #### 一、引言 随着技术的不断发展与进步,Spring 框架也在持续地更新与迭代之中。在经历了 Spring 2.0(2006年10月发布)和 Spring 2.5(2007年11月发布)两个重要版本后,Spring 3.0 ...
spring3.0的新特性 以及注解简化mvc让他真正解耦合
**Spring 3.0 新特性详解** Spring框架作为Java企业级应用开发的主流选择,其3.0版本的发布带来了许多显著的改进和创新。这个官方PPT资料深入剖析了这些新特性,使得开发者能够更好地利用Spring提升应用程序的效率...
本文将深入探讨Spring 3.0的新特性,并结合源码分析其核心功能。 1. **泛型注解支持**:Spring 3.0开始支持泛型元数据,这意味着开发者可以为bean定义和方法参数使用泛型,使得类型检查更加精确,减少运行时错误。...
在Spring 3.0版本中,引入了许多新特性和改进,使得它成为当时开发人员的首选框架之一。 Spring 3.0的核心特性包括: 1. **依赖注入(Dependency Injection, DI)**:这是Spring框架的核心功能,允许开发者将对象...
首先,Spring 3.0 引入了对Java 5和6的全面支持,这意味着它可以充分利用注解(Annotations)和泛型等现代Java特性。通过注解,开发者可以避免大量的XML配置,使得代码更加简洁、易读。例如,`@Autowired` 注解用于...
这个压缩包"spring3.0_doc_api"包含的是Spring 3.0的官方API文档,通常以CHM(Compiled HTML Help)格式呈现,这种格式便于离线查阅和搜索。 **Spring框架核心概念** 1. **依赖注入(Dependency Injection, DI)**...
Spring 3.0是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个版本标志着Spring框架在企业级应用开发中的进一步成熟,加强了对Java EE 6的支持,并引入了许多现代化的开发实践...
Spring 3.0重要特性总结如下: ◆Spring表达式(SpEL):用于bean定义的核心表达式分析器 ◆对基于注释的组件的更多支持:允许通过元注释创建注释的“快捷方式” ◆标准化的依赖性注入注释:对Java中依赖性注入的...
这个版本引入了许多新特性,优化了性能,并提供了更好的开发者体验。以下是一些关于Spring 3.0及其jar包的关键知识点: 1. **依赖注入 (Dependency Injection, DI)**:Spring的核心特性之一,允许对象之间的依赖...
Spring 3.0是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个版本标志着Spring框架在企业级应用开发中的成熟,提供了更强大、更灵活的解决方案。 1. **依赖注入增强**: ...
这个压缩包中的"spring3.0"文件很可能包含了所有需要的Spring 3.0框架相关的jar包,包括核心库、AOP、Web、MVC等模块的jar,是搭建Spring 3.0环境所必需的。开发者可以通过这些jar包快速构建基于Spring 3.0的应用,...
Spring 3.0是Spring框架的一个重要版本,它引入了许多新特性和改进,极大地扩展了其功能和灵活性。本文将详细解析Spring 3.0 API的主要特性,帮助开发者更好地理解和利用这一强大的Java企业级开发工具。 一、核心...
Spring3.0是该框架的一个重要版本,它引入了许多新特性和改进,为开发者提供了更强大的功能和更好的灵活性。在这个CHM文件中,你将找到3.2版本的API文档,涵盖了所有类和常量字段值,这对于深入理解和使用Spring3.0...
以上只是Spring 3.0中部分关键特性和功能的概述,实际的中文帮助文档会详细解释这些概念,提供使用示例,并指导开发者如何在项目中有效地应用Spring框架。通过深入学习和实践,开发者能够充分利用Spring 3.0的优势,...
Spring 3.0是该框架的一个重要版本,它带来了许多新特性、改进和优化,旨在提升开发者效率和软件的可维护性。在这个发行版中,Spring引入了模块化设计,增强了对Java EE 6的支持,以及对Web MVC、AOP、数据访问和...
Spring 3.0 是 Spring 框架的一个重要版本,发布于2009年,它带来了许多新特性和改进,极大地增强了 Java 开发者在企业级应用开发中的灵活性和效率。Spring 框架是一个全面的后端开发解决方案,核心特性包括依赖注入...