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 属性。
  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值