北京时间 2018 年 3 月 1 日早上,Spring Boot 2.0 如约发布,并提供了 Maven 中央仓库地址。在Spring Boot的官网中,2.0.0已经是最新的Spring Boot推荐版本。
官方表示,这个版本经历了 17 个月的开发,有 215 个不同的使用者提供了超过 6800 次的提交。该版本是自 4 年前发布 Spring Boot 1.0 以来的第一次重大修订,也是首个提供对 Spring Framework 5.0 支持的 GA 稳定版本。
Spring Boot 2.0 主要有以下特性(详见:Spring Boot 2.0 Release Notes)。
基于 Java 8,支持 Java 9
Spring Boot 2.0要求Java的版本最低为Java 8,许多现有的API已经更新,采用了Java 8的新特性,如:接口的默认方法、函数式的回调、javax.time
等新的API。如果你还在使用Java 7或者更早的版本,那么在使用Spring Boot 2.0之前要先升级到Java 8。
Spring Boot 2.0 也针对Java 9 做了相应测试,支持良好。
依赖组件的升级
Spring Boot 2.0 基于 Spring Framework 5构建,本次Spring Boot的升级,同时也升级了部分其依赖的第三方组件。主要的几个有:
Tomcat 8.5
Flyway 5
Hibernate 5.2
Thymeleaf 3
对响应式应用更好的支持
作为 Java 世界首个响应式 Web 框架,Spring 5 最大的亮点莫过于提供了完整的端到端响应式编程的支持。基于Spring 5构建的Spring Boot 2.0,在响应式编程方面给予了更好的支持,主要体现在以下几个方面:
使用 Spring WebFlux/WebFlux.fn 提供响应式 Web 编程支持
为各种组件的响应式编程提供了自动化配置,如:Reactive Spring Data、Reactive Spring Security 等
用于响应式 Spring Data Cassandra, MongoDB, Couchbase 和 Redis 的自动化配置和启动器 POM
支持HTTP/2
HTTP/2是第二代的HTTP协议,Spring Boot的Web容器选择中Tomcat, Undertow 和 Jetty 均已支持 HTTP/2。
Gradle 插件
Spring Boot的Gradle插件已基本重写,所有,有了许多重大改进。Spring Boot 2.0 要求 Gradle 4.x
引入对 Kotlin 1.2.x 的支持
Spring Boot 2.0 支持 Kotlin 1.2.x,并提供了一个 runApplication
函数,让你通过惯用的 Kotlin 来运行 Spring Boot 应用程序。
全新的执行器架构
在基于Spring Boot的应用程序内通过Endpoint可以根据应用程序业务需求实现自定义的监控接口,Spring 2.0 对于执行器端点(Actuator Endpoint)有很多改进和优化,经过重新设计后的Spring Boot 2 在Endpoint方面带来了全新的架构。全新的执行器架构,支持 Spring MVC, WebFlux 和 Jersey。
支持 Quartz 调度程序
Spring Boot 2 针对Quartz调度器提供了支持。你可以加入spring-boot-starter-quartz starter来启用。而且支持基于内存和基于jdbc两种存储。
动画ASCII艺术
最后一项,仅仅是为了好玩,启动时的 ASCII 图像 Spring Boot banner 现已支持 GIF