`
CoderDream
  • 浏览: 470241 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Spring 3.0 新特性

阅读更多

 

Spring 3.0 新特性

1.      JUnit4 测试 Spring

关键点:使用AbstractJUnit4SpringContextTests ,可以直接注入Bean

1Dao 定义时使用注解@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 方式

三种配置方式:XMLAnnotationJavaConfig

配置信息 Java 文件 中,即配置过程直接通过编写Java 代码 实现。

需要cglibasm

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

 

3
1
分享到:
评论

相关推荐

    Spring3.0新特性

    这是一个详细介绍Spring3.0新特性的文档

    spring3.0新特性

    spring3.0的新特性 以及注解简化mvc让他真正解耦合

    Spring3.0新特性源码

    Spring3.0新特性源码Spring3.0新特性源码

    spring3.0新特性官方ppt资料

    本资料是本人在国外参加spring3。0 source新特性的培训后所发的ppt资料。本文档为官方编写,下载后的人可以看到ppt的内容绝对真实。

    spring3.0帮助文档(包含REST资料)

    Spring 3.0重要特性总结如下: ◆Spring表达式(SpEL):用于bean定义的核心表达式分析器 ◆对基于注释的组件的更多支持:允许通过元注释创建注释的“快捷方式” ◆标准化的依赖性注入注释:对Java中依赖性注入的...

    带你了解Springboot3.0新特性

    Spring Boot 3.0的新特性 删除的支持 ActiveMq EhCache 2 Hazelcast 3 Atomikos 删除Spring Boot 2.X中丢弃的内容 在Spring Boot 2.X中不推荐使用的类、方法以及属性,在Spring Boot 3.0 的版本中已经删除了。所以在...

    spring3.0轻量级框架

    这里详解介绍了spring3.0的特性及强大的功能。 虽然它是一个轻量级的框架,还是很好很好。 大家好好学习吧!

    强烈推荐 Spring3.0 入门 代码下载

    写一个最简单的spring示例,使用spring3.0的框架,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务...

    Spring3.0的新特性

    马士兵老师提供的讲解,对于菜鸟或者是刚学习javaweb和SSH框架的人来说可谓是福音,马老师讲的内容非常详细,同时还会灌输学者一些在实际工作和开发中的一些技巧,特别是代码规范和编程习惯是非常重要的,所以特意...

    spring3.0 hibernate

    一个可以运行的spring3.0新特性的项目,用了注解,用的是mysql数据库,其它数据也可以,你只要加点演示数据就行了。这个项目可以运行的哦

    Spring MVC 3.0实战指南.ppt

    讲述了Spring mvc 和 Spring 3.0的一些新特性,实战示例, 对新手很有帮助

    spring3.0帮助文档

    spring3.0帮助文档,帮你深入了解spring特性

    spring3.0依赖注入详解

    基于spring3.0依赖注入详解,体验新特性。

    spring3.0jar和相关jar包

    spring3.0开发所需要的所有jar包以及新特性需要的 asm-3.2 cglib-2.2.jar等

    spring3.0 references文档

    spring3.0是一个已经发展的很好的开源框架, 在spring2.0,2.5的基础上又添加了好多新特性 其中包括对REST的全面支持等 但是,目前还没有它的中文文档,这令大家学习起来有了很大的困难! spring3交流群:

    Spring 3.0 API

    Spring3.2.1 API,对spring的特性进行说明并讲解

    Spring MVC 3.0实战指南

    Spring MVC 3.0新特性 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换、格式化、验证框架无缝集成 对静态资源处理提供特殊支持 更加灵活的控制器方法...

Global site tag (gtag.js) - Google Analytics