当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

Spring4.1新特性——综述

发表于: 2014-08-11   作者:jinnianshilongnian   来源:转载   浏览:
摘要: 目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T

目录

Spring4.1新特性——综述

Spring4.1新特性——Spring核心部分及其他

Spring4.1新特性——Spring缓存框架增强

Spring4.1新特性——异步调用和事件机制的异常处理

Spring4.1新特性——数据库集成测试脚本初始化

Spring4.1新特性——Spring MVC增强

Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介

Spring4.1新特性——静态资源处理增强

 

Spring 4.1目前已经发布RC1版本,而GA版本预计在14年9月中旬发布;其中有部分内容直接借鉴自Spring Boot,而Spring Boot从目前趋势来看已经是Spring的顶级项目;另外也提供了页面自动化测试框架Spring MVC Test HtmlUnit,和Spring MVC Test一样先是独立项目,如果发展态势很好,会最终合并到Spring Framework中。

 

从目前来看Spring 4.1并没有特别吸引眼球的地方,主要还是增强和一些依赖的版本升级。主要改进如下:

1、核心部分基本上无变化,提供了DirectFieldAccessor用于直接字段访问、yaml配置、SpEL的字节码编译化、BackOff退避算法的基本实现、Base64Utils、SmartInitializingSingleton等;

2、在任务调度和事件机制上加入了异常处理部分;

3、cache部分加入jcache的集成、类级别的@CacheConfig的支持、CacheResolver;

4、mvc部分提供了一些视图解析器的mvc标签实现简化配置、提供了GroovyWebApplicationContext用于Groovy web集成、提供了Gson、protobuf的HttpMessageConverter、静态资源处理方面添加了resolver和transformer、提供了对groovy-templates模板的支持、JSONP的支持、对Jackson的@JsonView的支持等;

5、提供了页面自动化测试框架Spring MVC Test HtmlUnit;

6、test部分提供了更便利的@sql标签来执行测试脚本的初始化、MockRestServiceServer对AyncRestTemplate支持、MockMvcConfigurer来全局配置MockMvc;

7、提供了对Java 8 Optional的支持(ObjectToOptionalConverter实现;可以在MVC中如@RequestParam等注解的绑定)、从Spring 4.1起Ehcache支持需要EhCache 2.5或更高版本、兼容Quartz 2.1.4、支持javax.annotation.Priority(等价于@Order)、JMS API的增强、SpringJUnit4ClassRunner需要 JUnit 4.9或更高版本支持。

 

从目前发展来看Spring把重点放在了Spring Boot上,另一方面Spring体系太庞大,要寻找和添加依赖,及选择版本特别麻烦,而且容易产生版本冲突等,因此又诞生了Spring IO Platform,如果用过maven的话,相当于给你很多默认依赖,然后需要的时候直接添加即可,无需指定版本。

 

从如上可以看出,吸引人的新特性很少,另外目前还不稳定,API异变,功能有BUG,如果没有把控能力,不建议把新特性用于新项目,后续部分我会按照如下几部分讲解Spring4.1新特性:

Spring核心部分及其他

Spring缓存框架增强

异步调用和事件机制的异常处理

数据库集成测试脚本初始化

Spring MVC增强

页面自动化测试框架Spring MVC Test HtmlUnit简介

静态资源处理增强

 

目前给我的印象是Spring Framework已经非常庞大,基本使用还是比较简单,而且如果深入下去基本上我们需要的功能都可以进行扩展,这也是最佩服它的一点,目前给我最不好的就是Java Config和XML Config都支持,会给人一种混乱的感觉;其实最好把这种配置也单独提取到一个项目中。因为我在测试Spring 4.1时遇到过在Java Config下好用,而XML Config下实现错误。从目前发展态势来看,1、推广它们的Groovy;2、微服务;3、周边的各种生态集成;4、目前最需要解决的就是简化使用;功能太多造成学习成本也高了,会吓跑一些人。用好了Spring生态系统,工作起来真的是很得心应手。

 

依赖:

使用4.1.0.BUILD-SNAPSHOT,请使用Spring官方maven仓库下载依赖。

   <repositories>
        <repository>
            <id>spring-milestone</id>
            <url>https://repo.spring.io/libs-milestone</url>
        </repository>
        <repository>
            <snapshots><enabled>true</enabled></snapshots>
            <id>repository.spring.snapshot</id>
            <name>Spring Snapshot Repository</name>
            <url>http://repo.spring.io/snapshot</url>
        </repository>
    </repositories>

 

示例项目:

https://github.com/zhangkaitao/spring4.1-showcase  

 

Spring4新特性

Spring4新特性——泛型限定式依赖注入

Spring4新特性——核心容器的其他改进

Spring4新特性——Web开发的增强

Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC 

Spring4新特性——Groovy Bean定义DSL

Spring4新特性——更好的Java泛型操作API 

Spring4新特性——JSR310日期API的支持

Spring4新特性——注解、脚本、任务、MVC等其他特性改进 

 

参考资料

https://spring.io/blog/2014/01/14/the-spring-framework-4-1-plan-and-4-0-1-3-2-7-releases-coming-up-next-week

http://spring.io/blog/2014/06/16/further-cache-improvements-in-spring-4-1

https://spring.io/blog/2014/04/30/spring-4-1-s-upcoming-jms-improvements

http://spring.io/blog/2014/05/28/using-the-innovative-groovy-template-engine-in-spring-boot

http://spring.io/blog/2014/08/06/spring-mvc-test-htmlunit-1-0-0-m2-released

http://spring.io/blog/2014/07/28/spring-framework-4-1-spring-mvc-improvements

http://spring.io/blog/2014/07/24/spring-framework-4-1-handling-static-web-resources

http://www.slideshare.net/sbrannen/spring-framework-40-to-41(需 翻 墙)

Spring4.1新特性——综述

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
J2EE1.4新特性之EJB2.1的新特性 http://www.weste.net/html/200310/20031029QBI124658.html EJB 2.1
MariaDB新特性剖析 Listener线程和worker线程之间可以进行相互转换。正常情况下当listener线程监听
本篇文章继续介绍cocos2D-x 2.1的新特性:CCPhysicsSprite 和CCPhysicsDebugNode,从名称上就可以看
一 下载: jQuery官方一如往常提供Minified和Regular两个版本供我们下载。Minified用Gzipped压缩24K
在以前试用VS2010的时候已经关注到它在Web开发支持上的一些变化了,为此我还专门做了一个ppt,当初
Oracle9i新特性:iSQLPLUS Last Updated: <!-- #BeginDate format:wfcIS1m -->Wednesday, 200
目录(?) 网格即插即用(GPnP) 网格即插即用帮助管理员来维护集群,以前增加或删除节点需要的一些手动
一 下载: jQuery官方一如往常提供Minified和Regular两个版本供我们下载。Minified用Gzipped压缩24K
苹果在今年的WWDC2012大会上介绍了大量Objective-C的新特性,能够帮助iOS程序员更加高效地编写代码
MVC 4 概述 MVC4版是一个相当成熟的基础上,能够把重点放在一些更高级的场景。一些高级的功能包括:
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号