赞
踩
目录
参考Spring Boot 3.0 发行说明 ·spring-projects/spring-boot Wiki ·GitHub
11.JdkClientHttpConnector 自动装配
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-properties-migrator</artifactId>
- <scope>runtime</scope>
- </dependency>
-
完成迁移之后,务必要移除
spring-boot-properties-migrator
依赖。
Spring Boot 3.0 通过 Micrometer 和 Micrometer 追踪提高应用可观察性,支持集成 Micrometer 1.10+,引入了的全新的可观察 API 并自动配置 Micrometer 追踪,包括对 Brave、OpenTelemetry、Zipkin 和 Wavefront 组件的支持。
Spring Boot 3.0 支持 Micrometer 1.10 中引入的新的 Observation API,新的ObservationRegistry
提供一个 API 就可以创建 metrics
和 trace
,新版本 SpringBoot 现在将会自动装配ObservationRegistry
,并且可以使用ObservationRegistryCustomizer
进一步定制化ObservationRegistry
。
SpringBoot 现在自动装配Micrometer Tracing ,包括对 Brave, OpenTelemetry, Zipkin 和 Wavefron 的支持。
另外,当引入io.micrometer:micrometer-registry-otlp
包之后, OtlpMeterRegistry
也会自动装配。
Spring Boot 2.7 引入了一个新的文件:META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
用于注册自动配置,同时保持与 spring.factories 中注册的向后兼容。Spring Boot 3.0 发布后,spring.factories已经被移除,只能通过imports文件来注册自动配置。
GraalVM 是 Oracle 在 2018 年发布的一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScript、Ruby、Python 和 R 语言等。
Spring Boot 3.0 应用现在可以支持转换为 GraalVM 原生镜像了,这可以提供显著的内存和启动性能改进,能支持 GraalVM 原生镜像也是整个 Spring 产品组合中的一项重大能力的提升。
Spring Boot 3.0 最低支持 Graal 22.3+ 和 Native Build Tools Plugin 0.9.17+。
Spring Boot 3.0 支持 GraalVM 原生镜像后,它甚至取代了实验性的 Spring Native 项目。
Log4j2 支持已更新为提供以下功能的新扩展:
配置文件增强
比如下面针对不同环境的配置方式:
- <SpringProfile name="staging">
- <!-- configuration to be enabled when the "staging" profile is active -->
- </SpringProfile>
-
- <SpringProfile name="dev | staging">
- <!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
- </SpringProfile>
-
- <SpringProfile name="!production">
- <!-- configuration to be enabled when the "production" profile is not active -->
- </SpringProfile>
Spring 环境属性增强,支持在 Log4j2配置中引用 Spring 环境中的属性,使用 Spring:
前缀。
- <Properties>
- <Property name="applicationName">${spring:spring.application.name}</property>
- </Properties>
配置文件增强
Log4j2现在支持更多可配置的 System.properties
。比如,可以使用 log4j2.skipJansi
系统属性来配置 Console Appender
是否在 Windows 上使用 Jansi
输出流。
在 Log4j2 初始化之后加载的所有System.properties
都可以从 SpringEnvironment
拿到。比如上面的举例一样,可以把log4j2.skipJansi = false
配置到 application.properties
中。
有关详细信息,请参阅更新的文档。
以前如果希望属性绑定到类中,我们通过使用@ConfigurationProperties
和@ConstructorBinding
注解可以做到。
新版本针对该注解做了优化,当使用构造函数绑定@ConfigurationProperties
时,如果类只有一个参数的构造函数,则不再需要@ConstructorBinding
注解。
如果有多个构造函数,那么仍然需要使用@ConstructorBinding
来告诉 Spring Boot 应该使用哪个构造函数。
如果存在 Prometheus 依赖和 Tracer
Bean,将会自动装配SpanContextSupplier
,SpanContextSupplier
将会把 metrics 关联到 trace,因为它会把当前的 traceID 和 spanID 保存到 Prometheus 的 Example 中。
Spring Data JDBC的自动装配现在更加灵活,Spring Data JDBC 所需的几个自动装配的 Bean
现在是有条件的,可以通过定义相同类型的Bean来替换,可以替换的Bean
类型如下:
org.springframework.data.jdbc.core.JdbcAggregateTemplate
org.springframework.data.jdbc.core.convert.DataAccessStrategy
org.springframework.data.jdbc.core.convert.JdbcConverter
org.springframework.data.jdbc.core.convert.JdbcCustomConversions
org.springframework.data.jdbc.core.mapping.JdbcMappingContext
org.springframework.data.relational.RelationalManagedTypes
org.springframework.data.relational.core.dialect.Dialect
现在可以通过设置spring.kafka.listener.async-acks=true
来开启 Kafka 的异步 ACK,并且需要设置spring.kafka.listener.async-mode
为manual
或者 manual-immediate
。
支持新版本的 ES JAVA 客户端自动装配,可以通过属性spring.elasticsearch.*
来配置。
如果没有 Netty Reactor、Jetty reactive client 和 Apache HTTP client ,将自动装配JdkClientHttpConnector
,这允许WebClient
和 JDK 的HttpClient
一起使用。
现在任何@SpringBootConfiguration
中的main
方法都可以使用@SpringBootTest
注解,但是需要将@SpringBootTest
的useMainMethod
属性设置为UseMainMethod.ALWAYS
或者UseMainMethod.WHEN_AVAILABLE
。
除了上面列出的更改外,还有一些小的调整和优化详见官网说明。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。