- 浏览: 470241 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
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 20601,在数据库中新增记录表 -- ---------- ... -
解决JavaMail发邮件抛出找不到SharedByteArrayInputStream类的异常
2011-07-22 11:21 7396在最近项目开发过程中 ... -
怎样让Word自动更新图片与表格编号
2010-12-31 17:03 11659怎样让Word 自动更新图片与表格编号 ... -
W3C_School在线教程chm版制作教程
2010-12-22 21:48 7630W3C_School 在线教程chm 版制作教程 ... -
String与StringBuffer区别详解
2010-12-17 17:19 3242String 与StringBuffe ... -
iText生成PDF时表头设置错误导出数据不能完全导出
2010-07-20 12:16 2143在利用iText生成PDF文件时,通常由于数据量比较多时会产生 ... -
事务管理入门-JDBC/Hibernate事务管理器/Spring注解 3种方式
2009-07-28 15:09 4638在软件开发过程中,经 ... -
JavaMail
2009-07-16 16:56 0javamail 怎样设置发件人的名字 http://to ... -
IBM Ajax系列教程
2009-02-16 20:39 1704第 1 部分: Ajax 简介 Ajax ... -
项目经验之弹出页面再弹出页面
2009-02-13 18:58 1056在项目中有这样一个场景,某弹出页面要弹出另一个: 弹出页面: ... -
正则表达式使用之替换多个字符串
2009-02-13 15:44 2530想一次性去掉某个文本文件中的某些字符串: 实现方式: 直接用竖 ... -
OGNL的jar档、文档和源代码
2009-02-05 09:25 51831、官方网站: http://mirrors.ibiblio. ... -
Calendar与java.sql.Date
2008-12-08 15:29 1658在Oracle数据库中,我们会有Date类型的数据,存储格 ... -
利用JavaScript控制单选框
2008-12-04 19:14 2272<script> function f(index ... -
JSP中使用JavaScript重定向页面
2008-12-03 10:04 3324第一种,不重定向,推荐使用。 function init( ... -
如何去掉 Code Pro 的警告标志
2008-11-07 16:35 1304Code Pro 是一个很好的代码格式检查工具,不过有时我们只 ... -
使用Struts提交多行数据
2008-11-07 11:27 3878使用Struts提交多行数据 http://blog.fl ... -
Ant使用经验
2008-10-22 10:18 12531、【示例1】: <?xml version=" ... -
利用JXL(JExcelApi)操作Excel文档
2008-10-09 10:51 51781、工具类: package com.coderdream. ... -
JSP下载文档
2008-10-07 14:08 18821、设置doc格式的文件弹出对话框: <?xml v ...
相关推荐
这是一个详细介绍Spring3.0新特性的文档
spring3.0的新特性 以及注解简化mvc让他真正解耦合
Spring3.0新特性源码Spring3.0新特性源码
本资料是本人在国外参加spring3。0 source新特性的培训后所发的ppt资料。本文档为官方编写,下载后的人可以看到ppt的内容绝对真实。
Spring 3.0重要特性总结如下: ◆Spring表达式(SpEL):用于bean定义的核心表达式分析器 ◆对基于注释的组件的更多支持:允许通过元注释创建注释的“快捷方式” ◆标准化的依赖性注入注释:对Java中依赖性注入的...
Spring Boot 3.0的新特性 删除的支持 ActiveMq EhCache 2 Hazelcast 3 Atomikos 删除Spring Boot 2.X中丢弃的内容 在Spring Boot 2.X中不推荐使用的类、方法以及属性,在Spring Boot 3.0 的版本中已经删除了。所以在...
这里详解介绍了spring3.0的特性及强大的功能。 虽然它是一个轻量级的框架,还是很好很好。 大家好好学习吧!
写一个最简单的spring示例,使用spring3.0的框架,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务...
马士兵老师提供的讲解,对于菜鸟或者是刚学习javaweb和SSH框架的人来说可谓是福音,马老师讲的内容非常详细,同时还会灌输学者一些在实际工作和开发中的一些技巧,特别是代码规范和编程习惯是非常重要的,所以特意...
一个可以运行的spring3.0新特性的项目,用了注解,用的是mysql数据库,其它数据也可以,你只要加点演示数据就行了。这个项目可以运行的哦
讲述了Spring mvc 和 Spring 3.0的一些新特性,实战示例, 对新手很有帮助
spring3.0帮助文档,帮你深入了解spring特性
基于spring3.0依赖注入详解,体验新特性。
spring3.0开发所需要的所有jar包以及新特性需要的 asm-3.2 cglib-2.2.jar等
spring3.0是一个已经发展的很好的开源框架, 在spring2.0,2.5的基础上又添加了好多新特性 其中包括对REST的全面支持等 但是,目前还没有它的中文文档,这令大家学习起来有了很大的困难! spring3交流群:
Spring3.2.1 API,对spring的特性进行说明并讲解
Spring MVC 3.0新特性 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换、格式化、验证框架无缝集成 对静态资源处理提供特殊支持 更加灵活的控制器方法...