1.最低环境的区别
- Java版本:SpringBoot2的最低版本要求为Java8,支持Java9;而SpringBoot3决定使用Java17作为最低版本,并支持Java19。
- Spring Framework 版本: SpringBoot2基于Spring Framework5开发;而SpringBoot3构建基于Spring Framework6之上。
2.GraalVM支持的区别
相比SpringBoot2,SpringBoot3的Spring Native也是升级的一个重大特性,支持使用GraalVM将Spring的应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存使用。
3.图片Banner支持的区别
在SpringBoot2中,自定义Banner支持图片类型;而现在Spring Boot3自定义Banner只支持文本类型(banner.txt),不再支持图片类型。
4.依赖项的区别
相比SpringBoot2,Spring Boot3.0.0-M1删除了对一些附加依赖项的支持,包括Apache ActiveMQ、Atomikos、EhCache2和HazelCast3。Jersey是另一个值得注意的弃用,在它提供对Spring Framework6的支持之前已被删除。
除了上述内容外,相比SpringBoot2,SpringBoot3还增加了很多其它的新特性,如:Java EE已经变更为Jakarta EE、Log4j2增强、三方包升级等。
延伸阅读
SpringBoot框架有哪些优点
1.可快速构建独立的Spring应用
Spring Boot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。
2.内嵌web服务器,无须部署WAR文件
传统的Spring应用部署时,通常会将应用打成WAR包形式并部署到Tomcat、Jetty或Undertow 服务器中。Spring Boot框架内嵌了Tomcat、Jetty和Undertow 服务器,而且可以自动将项目打包,并在项目运行时部署到服务器中。
3.自动starter依赖,简化构建配置
在Spring Boot项目构建过程中,无须准备各种独立的JAR文件,只需在构建项目时根据开发场景需求选择对应的依赖启动器“starter”,在引入的依赖启动器“starter”内部已经包含了对应开发场景所需的依赖,并会自动下载和拉取相关JAR包。例如,在Web开发时,只需在构建项目时选择对应的Web场景依赖启动器spring-boot-starter-web,Spring Boot项目便会自动导入spring-webmvc、spring-web、spring-boot-starter-tomcat等子依赖,并自动下载和获取Web开发需要的相关JAR包。
4.自动配置Spring以及第三方功能
Springboot简化了很多配置,例如工厂、整合SpringMVC 、Mybatis 之类的固定配置,创建工程后可直接开发业务逻辑。另外,第三方工具的使用,也只需引入starter,配置文件配置一下账号密码,有种开箱即用的感觉。
5.提供生产就绪功能
Spring Boot提供了一些用于生产环境运行时的特性,例如指标、监控检查和外部化配置。其中,指标和监控检查可以帮助运维人员在运维期间监控项目运行情况;外部化配置可以使运维人员快速、方便地进行外部化配置和部署工作。
6.极少的代码生成和XML配置
Spring Boot框架内部已经实现了与Spring以及其他常用第三方库的整合连接,并提供了默认优异化的整合配置,使用时基本上不需要额外生成配置代码和XML配置文件。在需要自定义配置的情况下,Spring Boot更加提倡使用Java config(Java 配置类)替换传统的XML配置方式,这样更加方便查看和管理。