Spring Boot 3.2 更新整理,值得收藏

1. 从 Spring Boot 3.1 升级
  • 参数名称发现 : 需要在编译时使用 -parameters 选项以避免依赖注入或属性绑定问题。
  • 记录的应用程序名称 : 设置 spring.application.name 会在日志中包含应用名称,可通过 logging.include-application-name 配置。
  • 自动配置的用户详细信息服务 : 需要定义相关bean或使用 spring.security.user.namespring.security.user.password 配置。
  • OTLP 跟踪端点 : 需要设置 management.otlp.tracing.endpoint 以自动配置 OtlpHttpSpanExporter bean。
  • 嵌套 Jar 支持 : 重写支持代码,使用新的 URL 格式和 java.lang.ref.Cleaner 管理资源。
  • Spring Boot 3.0 中的弃用情况: 已删除弃用的类、方法和属性,升级前需检查未使用弃用方法。
  • 日志关联 ID: 使用 Micrometer 跟踪时自动记录,自定义日志配置可删除。
2. 新特性和改进
  • RestClient 支持: 引入新的函数式阻塞 HTTP API,可能作为 RestTemplate 的替代。
  • RestTemplate HTTP 客户端: 自动配置使用 JettyClient 或 JdkClient。
  • 对 JdbcClient 的支持 : 基于 NamedParameterJdbcTemplate 自动配置。
  • 对虚拟线程的支持 : 需要 Java 21 和设置 spring.threads.virtual.enabled=true
    • Servlet Web 服务器使用虚拟线程处理请求。
    • Spring WebFlux 配置使用 applicationTaskExecutor.
    • 提供 SimpleAsyncTaskExecutorBuilderSimpleAsyncTaskSchedulerBuilder.
    • JVM 保持活动状态通过 spring.main.keep-alive 控制。
  • JVM 检查点/恢复支持: 初始支持 Project CRaC。
  • SSL 捆绑包重新加载 : 信任材料变化时自动重新加载,需要设置 reload-on-update 属性。
  • 可观测性改进 :
    • 使用 Micrometer 注解。
    • ObservationHandler 自动注册。
    • B3 跟踪传播格式变更。
    • @Scheduled 方法和 R2DBC 支持可观测性。
3. Docker 镜像构建
  • 默认 CNB 构建器升级: 基于 Ubuntu 22.04。
  • Docker 主机配置: 使用 Docker CLI 配置文件。
  • 缓存的绑定挂载: 配置构建和启动缓存。
  • 构建工作区配置: 使用绑定挂载或自定义命名卷。
  • 安全选项配置: 自定义 CNB 构建器容器安全选项。
4. 特定技术集成
  • Spring for GraphQL : 自动配置使用 applicationTaskExecutor.
  • OAuth2 令牌验证器 : 使用 OAuth2TokenValidator<Jwt> 进行令牌验证。
  • ActiveMQ 服务连接支持: 集成 Testcontainers 和 Docker Compose。
  • Neo4j Docker Compose 支持 : 配置 NEO4J_AUTH 环境变量。
  • WebSocketServerSpec 配置: 自定义 WebSocket 服务器规范。
  • Neo4j AuthTokenManager: 用于身份验证的 bean。
5. 消息系统更新
  • RabbitMQ: SSL 捆绑包支持,限制消息正文大小,虚拟主机支持。
  • Kafka: SSL 捆绑包支持。
  • JMS 会话: 新属性配置会话。
6. 数据库连接和配置
  • Oracle UCP 数据源: 连接验证默认值删除。
  • Gradle 配置 : 新增 testAndDevelopmentOnly 配置。
7. 其他改进
  • Jackson 功能配置: 启用或禁用 EnumFeature 和 JsonNodeFeature。
  • Provider 设置延迟值: 为其他构建信息属性设置。
  • 事务管理器自定义 : 适用于任何类型的 TransactionManager.
  • 端口信息记录: 改进和统一。
  • Multipart 请求处理: 新属性控制多部分处理。
  • RestClientBuilderConfigurer: 应用 Spring Boot 默认设置。
  • Jetty 服务器配置: 最大连接数配置。
  • PemSslStoreBundle 创建: 提供密钥库密码。
  • OpenTelemetry service.name : 使用 spring.application.name.
  • OTLP 指标和跟踪连接详细信息: 支持连接详细信息。
  • Wavefront CSP 身份验证: 添加支持。
  • Flyway 事务锁定配置: PostgreSQL 事务锁定使用。
  • Kafka MessageListenerContainer : 支持 changeConsumerThreadName 属性。
8. 弃用的功能
  • OkHttp 3 支持: 弃用,推荐使用 OkHttp 4。
  • Maven 目标属性 : directories 属性弃用。
  • LoggingSystemProperties 常量: 使用枚举值替代。
  • 请求缓冲支持 : 在 ClientHttpRequestFactorySettings 中弃用。
  • 注册 ApplicationContextInitializer 和 ApplicationListener: 不推荐使用环境属性注册。
  • Flyway 属性移动: 到专用命名空间。
  • InfluxDB 支持: 弃用,推荐新的客户端和集成。
  • OpenTelemetry 配置属性 : 弃用 management.otlp.metrics.export.resource-attributes.
  • TaskExecutorBuilder 和 TaskSchedulerBuilder: 推荐使用 ThreadPool 版本。
9. 测试和工具
  • Awaitility : 成为 spring-boot-starter-test 的一部分。
  • JdbcTest 和 DataJpaTest : 自动配置的 JdbcClient bean 可用。
  • MockMvc 自动配置: 使用注册 bean 的分派器类型和初始化参数。
  • Testcontainers 并行初始化 : 设置 spring.testcontainers.beans.startupparallel.
  • Micrometer 观察 : 支持 spring.kafka.template.observation-enabled 属性。
相关推荐
计算机徐师兄几秒前
Java基于SSM框架的无中介租房系统小程序【附源码、文档】
java·微信小程序·小程序·无中介租房系统小程序·java无中介租房系统小程序·无中介租房微信小程序
源码哥_博纳软云2 分钟前
JAVA智慧养老养老护理帮忙代办陪诊陪护小程序APP源码
java·开发语言·微信小程序·小程序·微信公众平台
大梦百万秋1 小时前
Spring Boot实战:构建一个简单的RESTful API
spring boot·后端·restful
忒可君1 小时前
C# winform 报错:类型“System.Int32”的对象无法转换为类型“System.Int16”。
java·开发语言
斌斌_____1 小时前
Spring Boot 配置文件的加载顺序
java·spring boot·后端
路在脚下@1 小时前
Spring如何处理循环依赖
java·后端·spring
一个不秃头的 程序员2 小时前
代码加入SFTP JAVA ---(小白篇3)
java·python·github
丁总学Java2 小时前
--spring.profiles.active=prod
java·spring
苹果醋32 小时前
React系列(八)——React进阶知识点拓展
运维·vue.js·spring boot·nginx·课程设计
上等猿2 小时前
集合stream
java