2018.3月Spring Boot2.0发布,是Spring Boot1.0发布4年以后第一次重大修订。Spring Boot2.0版本经历了 17 个月的开发,有 215 个不一样的使用者提供了超过 6800 次的提交。git
新版本值得关注的亮点有哪些:github
基于 Java 8,Spring5.0redis
也就是说Spring Boot2.0的最低版本要求为JDK8,同时支持了Java9。spring
基于Spring5.0实现响应式编程。使用 Spring WebFlux/WebFlux.fn提供响应式 Web 编程支持, Webflux 是一个全新的非堵塞的函数式 Reactive Web 框架,能够用来构建异步的、非堵塞的、事件驱动的服务,在伸缩性方面表现很是好。数据库
Spring Boot2.0也提供对响应式编程的自动化配置,如:Reactive Spring Data、Reactive Spring Security 等编程
HTTP/2支持tomcat
在Tomcat, Undertow 和 Jetty 中均已支持 HTTP/2安全
对Kotlin支持服务器
引入对 Kotlin 1.2.x 的支持,并提供了一个 runApplication 函数,让你经过惯用的 Kotlin 来运行 Spring Boot 应用程序。架构
全新的执行器架构
全新的执行器架构,支持 Spring MVC, WebFlux 和 Jersey
支持 Quartz
Spring Boot1.0并无提供对 Quartz 的支持,以前出现了各类集成方案,Spring Boot2.0给出了最简单的集成方式。
Security
大大的简化了安全自动配置
Metrics
Metrics方面,Spring Boot 2引入了Micrometer,来统一metrics的规范,使得开发人员更好的理解和使用metrics的模块,而不须要关心对接的具体存储是什么。
监控方面
Spring Boot 2 加强了对 Micrometer 的集成。RabbitMQ、JVM 线程和垃圾收集指标会自动进行 instrument 监控,异步控制器(controller)也会自动添加到监控里。经过集成,还能够对 InfluxDB 服务器进行监控。
数据方面
Thymeleaf 3
Spring Boot 2支持了Thymeleaf 3,Thymeleaf 3相对于Thymeleaf 2性能提高可不是一点点,由于2.0的性能确实不咋地,同时也使用了新的页面解析系统。
OAuth 2.0
同时也加入了 对于OAuth 2.0的支持, 使得开发人员更加友好的使用spring-security来完成权限模块的开发
依赖组件的更新
迁移注意事项:
在 Spring Boot 2.0 中,许多配置属性被从新命名/删除,开发人员须要更新application.properties
/ application.yml
相应的配置。为了帮助你解决这一问题,Spring Boot 发布了一个新spring-boot-properties-migrator
模块。一旦做为该模块做为依赖被添加到你的项目中,它不只会分析应用程序的环境,并且还会在启动时打印诊断信息,并且还会在运行时为您暂时迁移属性。在您的应用程序迁移期间,这个模块是必备的:
1 |
<dependency> |
注意:完成迁移后,请确保从项目的依赖关系中删除此模块。
SpringBoot GitHub地址:https://github.com/spring-projects/spring-boot
SpringBoot 官方文档: https://spring.io/guides/gs/spring-boot/