`
CoderDream
  • 浏览: 477276 次
  • 性别: 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新特性

    ### Spring 3.0 新特性详解 #### 一、引言 随着技术的不断发展与进步,Spring 框架也在持续地更新与迭代之中。在经历了 Spring 2.0(2006年10月发布)和 Spring 2.5(2007年11月发布)两个重要版本后,Spring 3.0 ...

    spring3.0新特性

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

    spring3.0新特性官方ppt资料

    **Spring 3.0 新特性详解** Spring框架作为Java企业级应用开发的主流选择,其3.0版本的发布带来了许多显著的改进和创新。这个官方PPT资料深入剖析了这些新特性,使得开发者能够更好地利用Spring提升应用程序的效率...

    Spring3.0新特性源码

    本文将深入探讨Spring 3.0的新特性,并结合源码分析其核心功能。 1. **泛型注解支持**:Spring 3.0开始支持泛型元数据,这意味着开发者可以为bean定义和方法参数使用泛型,使得类型检查更加精确,减少运行时错误。...

    spring3.0 全部jar包

    在Spring 3.0版本中,引入了许多新特性和改进,使得它成为当时开发人员的首选框架之一。 Spring 3.0的核心特性包括: 1. **依赖注入(Dependency Injection, DI)**:这是Spring框架的核心功能,允许开发者将对象...

    spring3.0jar包

    首先,Spring 3.0 引入了对Java 5和6的全面支持,这意味着它可以充分利用注解(Annotations)和泛型等现代Java特性。通过注解,开发者可以避免大量的XML配置,使得代码更加简洁、易读。例如,`@Autowired` 注解用于...

    spring3.0_doc_api

    这个压缩包"spring3.0_doc_api"包含的是Spring 3.0的官方API文档,通常以CHM(Compiled HTML Help)格式呈现,这种格式便于离线查阅和搜索。 **Spring框架核心概念** 1. **依赖注入(Dependency Injection, DI)**...

    spring3.0 jar包

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个版本标志着Spring框架在企业级应用开发中的进一步成熟,加强了对Java EE 6的支持,并引入了许多现代化的开发实践...

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

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

    spring 3.0 jar 包

    这个版本引入了许多新特性,优化了性能,并提供了更好的开发者体验。以下是一些关于Spring 3.0及其jar包的关键知识点: 1. **依赖注入 (Dependency Injection, DI)**:Spring的核心特性之一,允许对象之间的依赖...

    spring 3.0 jar包

    Spring 3.0是Spring框架的一个重要版本,它在2009年发布,为Java开发者带来了许多新特性和改进。这个版本标志着Spring框架在企业级应用开发中的成熟,提供了更强大、更灵活的解决方案。 1. **依赖注入增强**: ...

    spring3.0完整框架

    这个压缩包中的"spring3.0"文件很可能包含了所有需要的Spring 3.0框架相关的jar包,包括核心库、AOP、Web、MVC等模块的jar,是搭建Spring 3.0环境所必需的。开发者可以通过这些jar包快速构建基于Spring 3.0的应用,...

    spring3.0的API

    Spring 3.0是Spring框架的一个重要版本,它引入了许多新特性和改进,极大地扩展了其功能和灵活性。本文将详细解析Spring 3.0 API的主要特性,帮助开发者更好地理解和利用这一强大的Java企业级开发工具。 一、核心...

    Spring3.0中文版

    Spring3.0是该框架的一个重要版本,它引入了许多新特性和改进,为开发者提供了更强大的功能和更好的灵活性。在这个CHM文件中,你将找到3.2版本的API文档,涵盖了所有类和常量字段值,这对于深入理解和使用Spring3.0...

    Spring3.0中文帮助文档

    以上只是Spring 3.0中部分关键特性和功能的概述,实际的中文帮助文档会详细解释这些概念,提供使用示例,并指导开发者如何在项目中有效地应用Spring框架。通过深入学习和实践,开发者能够充分利用Spring 3.0的优势,...

    spring3.0发行版

    Spring 3.0是该框架的一个重要版本,它带来了许多新特性、改进和优化,旨在提升开发者效率和软件的可维护性。在这个发行版中,Spring引入了模块化设计,增强了对Java EE 6的支持,以及对Web MVC、AOP、数据访问和...

    Spring3.0Jar包

    Spring 3.0 是 Spring 框架的一个重要版本,发布于2009年,它带来了许多新特性和改进,极大地增强了 Java 开发者在企业级应用开发中的灵活性和效率。Spring 框架是一个全面的后端开发解决方案,核心特性包括依赖注入...

Global site tag (gtag.js) - Google Analytics