SpringBoot3与SpringBoot2的区别
1.环境
SpringBoot3最低要求JDK17
SpringBoot2最低要求JDK8
2.自定义starter调整
自定义starter时Spring Boot3去除了spring.factories作为配置指定自动装配。
只支持META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 增加自动配置(实际上是SpringBoot2.7版本开始引入)
3.Spring Framework版本
SpringBoot 2: Spring Framework 5
SpringBoot3: Spring Framework 6
4.新特性
- GraalVM:
Spring Boot 3支持使用GraalVM将应用程序编译成本地可执行的镜像文件,这可以显著提升启动速度、峰值性能以及减少内存应用。与传统的JVM运行方式相比,GraalVM的即时编译器和AOT编译器可以显著提高应用程序的性能。 - 响应式编程
增强了响应式编程的自动化配置 - HTTP/2支持
常用的服务器如:tomcat、Undertow和Jetty中都支持 HTTP/2 - Kotlin支持
完全支持Kotlin 1.5,允许开发人员无缝使用Kotlin的最新语言特性来开发Spring Boot应用。 - 全新启动器
提供了若干全新启动器,如spring-boot-starter-rsocket(RSocket支持)和spring-boot-starter-data-r2dbc(响应式关系型数据库)等,以简化特定功能的集成。 - 改进的依赖管理
Spring Boot 3改进了对第三方依赖的管理,使依赖关系更加清晰和易于管理。 - 新版Actuator
Spring Boot 3升级到Actuator 2.5.0,增加了许多新特性,如probes提供liveness、readiness和startup检查,改进的健康检查API等。
个人总结
1.Spring Boot 3在服务启动效率上做了比较大的优化,可以和GO开始对彪了。
这个优化点同时也是元原生的一个切入点。(云原生的一个概念就是服务的快速启动)
2.在安全性上做了更多的优化。