赞
踩
https://start.spring.io/actuator/info
Spring Boot 3.0 Release Notes · spring-projects/spring-boot Wiki · GitHub
由于这是 Spring Boot 的一个主要版本,因此升级现有应用程序可能比平时更复杂一些。我们整理了一份专门的迁移指南,以帮助您升级现有的 Spring Boot 2.7 应用程序。
如果您当前运行的是早期版本的 Spring Boot,我们强烈建议您先升级到 Spring Boot 2.7,然后再迁移到 Spring Boot 3.0。
springboot3.0后相关配置修改(废弃,默认值变更,key修改)
Spring Boot 3.0 要求 Java 17 作为最低版本。如果您当前使用的是 Java 8 或 Java 11,则需要先升级 JDK,然后才能开发 Spring Boot 3.0 应用程序。
Spring Boot 3.0 也运行良好,并已通过 JDK 19 测试。
jdk17下载安装
https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.exe
Spring Boot 需要 Graal 22.3 或更高版本和 Native Build Tools Plugin 0.9.17 或更高版本
ps: 更好的支持云原生,打出镜像更小(不依赖jvm),启动的更快(预编译)
GraalVM 是 Oracle 在 2018 年发布的一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScript、Ruby、Python 和 R 语言等
Spring Boot 3.0 基于并需要 Spring Framework 6。您可能想阅读Spring Framework 6.0 中可用的新功能。
此版本中升级的其他 Spring 项目包括:
Spring Security 6.0 (see also what’s new).
包名javax改为jakarta (捐献给了 eclipse进行维护,因此包名需要进行修改)
Spring Boot 3.0 已将所有依赖项从 Java EE 迁移到 Jakarta EE API。尽可能选择 Jakarta EE 10 兼容依赖项,包括:
我们还尽可能升级到第三方 jar 的最新稳定版本。这里一些值得注意的依赖项升级包括:
Apache Tomcat项目很自豪地宣布Apache Tomcat10.1.1版本的发布。此版本实现了Jakarta EE 10 平台的一部分规范。在 Tomcat 9 及更早版本上运行的应用程序如果不进行更改,将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放在
$CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将它们转换为Jakarta EE 并将它们复制到 web 应用程序目录。此转换是使用 Jakarta EE工具的Apache Tomcat迁移工具 执行的,该工具也可单独下载 以供离线使用。
Spring Boot 3.0 应用程序现在可以转换为 GraalVM 原生镜像,这可以提供显着的内存和启动性能改进。支持 GraalVM Native Images 是整个 Spring 产品组合中的一项重大工程工作。
要开始使用 GraalVM 原生图像,请参阅更新后的 Spring Boot 参考文档。
Log4j2 支持已更新为提供以下功能的新扩展:
有关详细信息,请参阅更新的文档。
使用构造函数绑定时,如果类具有单个参数化构造函数,则不再需要注释@ConfigurationProperties
。@ConstructorBinding
如果您有多个构造函数,您仍然需要使用@ConstructorBinding
来告诉 Spring Boot 使用哪一个。
对于大多数用户来说,这个更新后的逻辑将允许使用更简单的@ConfigurationProperties
类。但是,如果您有一个@ConfigurationProperties
并且想要将 bean 注入构造函数而不是绑定它,那么您现在需要添加一个@Autowired
注释
Micrometer Observation API 的自动配置
Spring Boot 3.0 支持 Micrometer 1.10 中引入的新观察 API。新ObservationRegistry
接口可用于创建观察,它为指标和跟踪提供单一 API。ObservationRegistry
Spring Boot 现在为您自动配置一个实例。
如果micrometer-core
在类路径上,aDefaultMeterObservationHandler
注册在 上ObservationRegistry
,这意味着每次停止都会Observation
导致一个计时器。 ObservationPredicate
,GlobalObservationConvention
并ObservationHandler
自动注册在ObservationRegistry
. 如果需要,您可以使用ObservationRegistryCustomizer
它来进一步自定义。ObservationRegistry
有关详细信息,请参阅参考文档的新“可观察性”部分。
Spring Boot 现在为您自动配置Micrometer Tracing 。这包括对 Brave、OpenTelemetry、Zipkin 和 Wavefront 的支持。
使用 Micrometer Observation API 时,完成观察将导致报告给 Zipkin 或 Wavefront 的跨度。可以使用 下的属性控制跟踪management.tracing
。Zipkin 可以配置为management.zipkin.tracing
,而 Wavefront 使用management.wavefront
.
更多详细信息,包括您需要添加的各种依赖项,请参见参考文档的跟踪部分。
Micrometer 的 OtlpMeterRegistry 的自动配置
An现在在类路径上OtlpMeterRegistry
时自动配置。io.micrometer:micrometer-registry-otlp
仪表注册表可以使用management.otlp.metrics.export.*
属性进行配置。
Prometheus 示例的自动配置
当有一个 Micrometer Tracing Tracer
bean 并且 Prometheus 在类路径上时,aSpanContextSupplier
现在是自动配置的。该供应商通过使当前跟踪 ID 和跨度 ID 可用于 Prometheus 将指标链接到跟踪。
在关闭时对 Prometheus Push Gateway 进行 PUT
Push Gateway 可以配置为在关闭时执行PUT。为此,请设置management.prometheus.metrics.export.pushgateway.shutdown-operation
为put
。此外,现有push
设置已被弃用,post
现在应该改用。
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
添加了一个新的配置属性,用于启用与 Kafka 的异步确认。要启用异步确认,请将属性设置为true
. 该属性仅在spring.kafka.listener.async-mode
设置为manual
或时适用manual-immediate
。
引入了新的 Elasticsearch Java 客户端的自动配置。它可以使用现有的spring.elasticsearch.*
配置属性进行配置。
在没有 Reactor Netty 的情况下,Jetty 的反应式客户端和 Apache HTTP 客户端JdkClientHttpConnector
现在将自动配置。这允许WebClient
与 JDK 的HttpClient
.
如果可用,注释@SpringBootTest
现在可以使用main
任何已发现的类。@SpringBootConfiguration
这意味着SpringApplication
您的 main 方法执行的任何自定义配置现在都可以通过测试获取。
要将该main
方法用于测试,请将useMainMethod
属性设置@SpringBootTest
为UseMainMethod.ALWAYS
或UseMainMethod.WHEN_AVAILABLE
。
有关详细信息,请参阅更新的参考文档。
Getting Started | Building a Reactive RESTful Web Service
Spring6.0提供HTTP Interfaces新特性,类似于SpringData的Repository或者SpringCloud OpenFeign一样,从而更高效的实现WebFlux开发。
除了上面列出的更改外,还有一些小的调整和改进,包括:
SecurityManager
在 JDK 中弃用 Java 后,已删除对它的支持。spring.mvc.ignore-default-model-on-redirect
弃用以与上游 Spring Framework 更改保持一致。spring.mvc.webjars-path-pattern
或自定义 WebJars 资源处理程序路径模式spring.webflux.webjars-path-pattern
。server.tomcat.remoteip.trusted-proxies
.Configuration
现在可以通过定义一个bean 来自定义Bean 验证ValidationConfigurationCustomizer
。Log4jBridgeHandler
现在用于将基于 JUL 的日志记录路由到 Log4j2,而不是通过 SLF4J 进行路由。MeterBinder
现在仅在初始化所有单例 bean 后才绑定到仪表注册表。SpanCustomizer
Brave 和 OpenTelemetry 的 beans 现在是自动配置的。JvmCompilationMetrics
现在是自动配置的。DiskSpaceHealthIndicator
现在在其日志消息及其运行状况详细信息中包含其路径。DataSourceBuilder
现在可以从包装的DataSource
.spring.data.mongodb.additional-hosts
。spring.elasticsearch.socket-keep-alive
属性进行配置。spring-rabbit-stream
,aRabbitStreamTemplate
和Environment
现在将自动配置是否spring.rabbitmq.listener.type
为stream
。spring.kafka.admin.modify-topic-configs
。WebDriverScope
并WebDriverTestExecutionListener
已公开以简化在自定义测试设置中的使用WebDriver
。@ConstructorBinding
已从org.springframework.boot.context.properties
包中移至org.springframework.boot.context.properties.bind
.JsonMixinModule
基于扫描的构造函数已被弃用。ClientHttpRequestFactorySupplier
应替换为ClientHttpRequestFactories
.comment
不再支持Cookie属性。RestTemplateExchangeTagsProvider
、WebClientExchangeTagsProvider
、WebFluxTagsProvider
和WebMvcTagsProvider
相关类已替换为ObservationConvention
等效类。HealthContributor
@Configuration
已被弃用。DefaultTestExecutionListenersPostProcessor
并且SpringBootDependencyInjectionTestExecutionListener
已被弃用,取而代之的是 Spring Framework 的ApplicationContextFailureProcessor
.management.metrics.export.<product>
已弃用,替换为management.<product>.metrics.export
.push
的设定。management.prometheus.metrics.export.pushgateway.shutdown-operation``post
@AutoConfigureMetrics
已被弃用,取而代之的是@AutoConfigureObservability
.Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。