# Spring Boot版本更新 - 3.1正式发布,你还升得动吗

Spring Boot在2023年正式发布3.1版本,这个改变Java Web开发方式的框架,在变得越来越强大。

# 版本升级主要特性

# Spring Boot 3.1

  • 移除Apache HttpClient 4,由 HttpClient 5取代;
  • ServletRegistrationBeanFilterRegistrationBean注册失败时抛出异常IllegalStateException,而不是打警告日志;
  • Hibernate升级到6.2;
  • Jackson升级到2.15;
  • Mockito升级到5.3;
  • 新增spring-boot-docker-compose模块;
  • 新增Testcontainers,方便在开发时管理外部服务;
  • Spring Authorization Server自动配置等

# Spring Boot 3.0

变更巨大,比较大的变化有:

  • JDK最低也要JDK 17了;
  • 更贴近云原生,使用GraalVM和Native Build Tools将应用打包成可执行文件;
  • 大量第三方库的升级;

# Spring Boot 2.7

  • OkHttp升级版本4;
  • 新增spring-boot-starter-graphql

# Spring Boot 2.6

  • info提供Java Runtime信息;

# Spring Boot 2.5

  • 支持环境变量前缀 application.setEnvironmentPrefix("myapp")
  • HTTP/2 over TCP;
  • 支持 Java 16;

# Spring Boot 2.4

  • Spring 5.4;
  • R2DBC支持改为模块spring-r2dbc
  • 支持Java 15;

# Spring Boot 2.3

  • 支持Java 14;
  • Liveness和Readiness探针;
  • 支持R2DBC;

# Spring Boot 2.2

  • Spring 5.2;
  • JMX默认关闭;
  • 添加JDK 13的支持,Java 8和Java11依旧支持;
  • Kubernetes detection;

# Spring Boot 2.1

  • Spring 5.1;
  • 支持JDK 11;
  • 支持Kafka streams;
  • 自动配置的exclusion优化;

# Spring Boot 2.0

  • 最低要求JDK 8;
  • 基于Spring 5;
  • 引入响应式编程如WebFlux;
  • 支持HTTP/2;
  • 数据池化使用HikariCP;
  • Actuator endpoint的升级等

# 你还升得动吗

许多程序员都喜欢新技术、新框架,但稳定性才是产品与服务的关键。而升级框架就会带来巨大的工作量和风险,这不是谁都愿意去承担的。目前,我还维护着1.5的项目,也有2.6的新项目。3.X要求JDK17,大多公司应该是很难升了。

但各版本支持的时长是有限的,要不要更新就看财力了。

显然是越晚出生,活得越久。

# 各版本对JDK的支持

各种版本对Java版本的支持如下表,我们要升级Spring Boot的同时,要考虑是否需要同时升级JDK。

Release Java
3.1 17 - 20
3.0 17 - 19
2.6 - 2.7 8 - 19
2.5 8 - 18
2.4 8 - 16
2.2 - 2.3 8 - 15
2.1 8 - 12
2.0 8 - 9
1.5 6 - 8

References: Spring Boot 3.1 Release Notes (opens new window)

Support (opens new window)

https://endoflife.date/spring-boot

https://stackoverflow.com/questions/42659920/is-there-a-compatibility-matrix-of-spring-boot-and-spring-cloud

上次更新: 2023/8/18 23:39:36