浅析Spring4新特性概述
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仓库下载依赖。
java代码
<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>
总结
以上所述是小编给大家介绍的spring4新特性概述,希望对大家有所帮助