内容简介:Spring 5.0是在2013年发布Spring 4后的第一个大版本,5.0 M1在2016年7月28日发布。随着慢慢的推广,使用它的人数肯定也会越来越多,那么Spring 5有哪些新的特性呢?一起来看下吧基本可以归为如下几类:Spring 5的代码基于Java 8的语法规范,因此要想使用Spring 5,JDK的版本至少要在8.0以上。最开始的时候Spring 5.0想使用Java 9,但是Java 9发布的时间比Spring 慢了18个月,然后Spring开发团队决定从Spring 5.0中去除Jav
Spring 5.0是在2013年发布Spring 4后的第一个大版本,5.0 M1在2016年7月28日发布。随着慢慢的推广,使用它的人数肯定也会越来越多,那么Spring 5有哪些新的特性呢?一起来看下吧
基本可以归为如下几类:
- JDK版本升级
- Core框架修订,核心容器更新
- Kotlin函数式编程
- 响应式编程模型
- 测试改进
- 额外库支持
- 停止维护一些特性
JDK版本升级
Spring 5的代码基于 Java 8的语法规范,因此要想使用Spring 5,JDK的版本至少要在8.0以上。最开始的时候Spring 5.0想使用Java 9,但是Java 9发布的时间比Spring 慢了18个月,然后Spring开发团队决定从Spring 5.0中去除Java 9的依赖。
Core框架修订
基于Java8的反射增强,方法的参数再Spring5中可以高效的被访问
核心的Spring接口提供了利用了Java 8的默认接口实现,default方法,提供了一些可选的声明
@Nullable和@NotNull注解精确的标记了方法的参数和返回值,这样可以在编译的时候处理null值,而不至于在运行的时候抛出空指针异常,NullPointerExceptions。
在日志端,Spring 5.0提供了Common Logging的桥接模块,spring-jcl,代替了标准的Common Logging,同时它还可以自动的检测Log4J2.x,SLF4J,JUL(java.util.logging),而不需要额外的依赖。
Kotlin函数式编程
Spring 5.0引入了JetBrains的Kotlin语言支持,Kotlin是一种支持函数式编程的面向对象编程语言。Kotlin也运行在JVM之上,有了Kotlin的支持,开发者可以使用Spring的函数式编程处理Web的入口点和Bean的注册。
比如你可以写成如下的代码风格。
在web的入口点的时候:
{ ("/movie" and accept(TEXT_HTML)).nest { GET("/", movieHandler::findAllView) GET("/{card}", movieHandler::findOneView) } ("/api/movie" and accept(APPLICATION_JSON)).nest { GET("/", movieApiHandler::findAll) GET("/{id}", movieApiHandler::findOne) } } 复制代码
在注册Bean的时候:
val context = GenericApplicationContext { registerBean() registerBean { Cinema(it.getBean()) } } 复制代码
响应式编程模型
激动人心的Spring 5.0特性就是它的响应式Web编程
Reactive Streams(响应式流)是NetFlix ,Pivotal, Typesafe, Red Hat, Oracle, Twitter, 和 Spray.io共同开发的一套规范。它提供了一些通用的API, 实现的话可以自己控制,就像Hibernate之JPA,JPA是api,Hibernate是实现。
响应式流是Java9的正式模块,但是在Java8中,我们需要引入额外的依赖。Spring5.0的流式支持基于响应式流的API的Project Reactor
Spring 5.0有个新的模块叫做spring-webflux,可以支持响应式的Http和WebSocket客户端。
通过Spring Webflux,你可以创建Webclient,它是响应式和非阻塞的RestTemplate的替代。如下是代码示范:
WebClient webClient = WebClient.create(); Mono person = webClient.get() .uri("http://localhost:8080/movie/42") .accept(MediaType.APPLICATION_JSON) .exchange() .then(response -> response.bodyToMono(Movie.class)); 复制代码
测试改进
Spring 5.0完全支持Junit 5,在TestContext框架中,可以并行的执行测试。对于响应式的编程,Spring-test提供了WebTestClient来测试spring-webflux。WebTestClient,就像MockMvc不需要运行的服务器。
当然Spring 5.0还是支持Junit 4的,在未来的一段时间里Junit 4是都会存在的。
额外库支持
Spring 5.0现在支持下面的库版本:
- JackSon 2.6+
- EhCache 2.10+ / 3.0 GA
- Hibernate 5.0 +
- JDBC 4.0 +
- XmlUnit 2.x +
- OkHttp 3.x +
- Netty 4.1 +
停止维护的一些特性
在Api层面上,Spring5.0不在支持下面的包了:
- beans.factory.access
- jdbc.support.nativejdbc
- spring-aspects模块的mock.staticmock
- web.view.tiles2M. 现在Tiles 3是最低要求的版本
- orm.hibernate3和orm.hibernate4.现在支持Hibernate5
不再支持如下库:
- Portlet
- Velocity
- JasperReports
- XMLBeans
- JDO
- Guava
如果你在当前的项目中使用到了上面提到的这些库,那么最好不要升级到Spring5的版本
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 『互联网架构』软件架构-redis特性和集群特性(中)(49)
- 『互联网架构』软件架构-redis特性和集群特性(上)(48)
- 『互联网架构』软件架构-redis特性和集群特性(下)(50)
- JDK 14 功能特性
- C# 特性(Attribute)
- python—高级特性
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法技术手册
George T. Heineman、Gary Pollice、Stanley Selkow / 杨晨、李明 / 机械工业出版社 / 2010-3 / 55.00元
《算法技术手册》内容简介:开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法。《算法技术手册》讲解了许多现有的算法,可用于解决各种问题。通过阅读它,可以使您学会如何选择和实现正确的算法,来达成自己的目标。另外,书中的数学深浅适中,足够使您可以了解并分析算法的性能。 较之理论而言,《算法技术手册》更专注于应用。《算法技术手册》提供了高效的代码解决方案,使用多种语言......一起来看看 《算法技术手册》 这本书的介绍吧!