浅析Spring4新特性概述

所属分类: 软件编程 / java 阅读数: 22
收藏 0 赞 0 分享

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新特性概述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

Java的面向对象编程基本概念学习笔记整理

这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
收藏 0 赞 0 分享

Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法

这篇文章主要介绍了Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Java实现杨辉三角 LeetCode Pascal's Triangle

这篇文章主要介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中Spring获取bean方法小结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

如何计算Java对象占用了多少空间?

在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小,需要的朋友可以参考下
收藏 0 赞 0 分享

剖析Java中的事件处理与异常处理机制

这篇文章主要介绍了Java中的事件处理与异常处理机制,讲解Java是如何对事件或者异常作出响应以及定义异常的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Java的Struts2框架的结构及其数据转移方式

这篇文章主要介绍了详解Java的Struts2框架的结构及其数据转移方式,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

Java封装好的mail包发送电子邮件的类

本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
收藏 0 赞 0 分享

在Java的Struts中判断是否调用AJAX及用拦截器对其优化

这篇文章主要介绍了在Java的Struts中判断是否调用AJAX及用拦截器对其优化的方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

java多线程Future和Callable类示例分享

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们就来研究下Future和Callab
收藏 0 赞 0 分享
查看更多