赞
踩
Spring Boot3.0发布了, 新特征如下:
Spring Boot 3.0需要Java 17作为最低版本。如果您当前正在使用Java 8或Java 11,则在开发Spring Boot 3.0应用程序之前,需要升级JDK。 Spring Boot 3.0也运行良好,已在JDK 19上进行了测试。 GraalVM Baseline and Native Build Tools Spring Boot需要Graal 22.3或更高版本和Native Build Tools插件0.9.17或更高版本
Spring Boot 3.0基于并需要Spring Framework 6。您可能想了解Spring Framework 6.0中提供的新功能。 在此版本中升级的其他Spring项目包括:
- Spring AMQP 3.0
- Spring Batch 5.0
- Spring Data 2022.0
- Spring GraphQL 1.1
- Spring HATEOAS 2.0
- Spring Integration 6.0
- Spring Kafka 3.0
- Spring LDAP 3.0
- Spring REST Docs 3.0
- Spring Retry 2.0
- Spring Security 6.0
- Spring Session 3.0
- Spring WS 4.0。
Spring Boot 3.0已从Java EE迁移到Jakarta EE API,用于所有依赖项。尽可能选择Jakarta EE 10兼容依赖项,包括:
- Jakarta Activation 2.1
- Jakarta JMS 3.1
- Jakarta JSON 2.1
- Jakarta JSON Bind 3.0
- Jakarta Mail 2.1
- Jakarta Persistence 3.1
- Jakarta Servlet 6.0
- Jakarta Servlet JSP JSTL 3.0
- Jakarta Transaction 2.0
- Jakarta Validate 3.0
- Jakarta WebSocket 2.1
- Jakarta WS RS 3.1
- Jakarta XML SOAP 3.0
- Jakarta XML WS 4.0
我们还尽可能升级到第三方jar的最新稳定版本。这里一些值得注意的依赖关系升级包括:
- Couchbase client 3.4
- Ehcache 3.10
- Elasticsearch client 8.5
- Flyway 9
- Groovy 4.0
- Hibernate 6.1
- Hibernate Validator 8.0
- Jackson 2.14
- Jersey 3.1
- Jetty 11
- jOOQ 3.16
- Kotlin 1.7.20
- Liquibase 4.13
- Lettuce 6.2
- Log4j 2.18
- Logback 1.4
- Micrometer 1.10
- Micrometer Tracing 1.0
- Neo4j Java Driver 5.2
- Netty 4.1.77 Final
- OkHttp 4.10
- R2DBC 1.0
- Reactor 2022.0
- SLF4J 2.0
- SnakeYAML 1.32
- Tomcat 10
- Thymeleaf 3.1.0.M2
- Undertow 2.2.20.Final
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接口可用于创建观测,该接口为度量和Tracing 提供了一个API。Spring Boot现在为您自动配置ObservationRegistry的一个实例。
如果 micrometer-core 在类路径上,则在ObservationRegistry上注册DefaultMeterObservationHandler,这意味着每个停止的Observation都会导致计时器。ObservationPredicate、GlobalObservationConvention和ObservationHandler在ObservationRegistry上自动注册。如果需要,可以使用ObservationRegistryCustomizer进一步自定义Observation注册表。
Spring Boot现在为您自动配置Micrometer Tracing 。这包括对Brave、OpenTelemetry、Zipkin和Wavefront的支持。
使用Micrometer 观测API时,完成观测将导致向Zipkin或Wavefront报告跨度。可以通过管理的属性控制Tracing 。Tracing 。Zipkin可以使用management.zip来配置。Tracing ,而wavefront使用management.wavefront。
OtlpMeterRegistry现在在io时自动配置。Micrometer :Micrometer 注册表otlp位于类路径上。可以使用management.otlp.metrics.export.*配置仪表注册表属性。
Prometheus示例的自动配置
当有一个Micrometer Tracing Tracing bean并且Prometheus在类路径上时,SpanContextSupplier现在是自动配置的。该供应商通过将当前Tracing ID和跨度ID提供给普罗米修斯,将度量链接到Tracing 。
关闭时向Prometheus Push Gateway进行PUT推送网关可以配置为在关机时执行PUT。为此,请设置management.prometheus.metrics.export.pushgateway。关闭操作。此外,现有的推送设置已被弃用,现在应改用post。
SpringDataJDBC的自动配置现在更加灵活。SpringDataJDBC所需的几个自动配置的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.kafkalistener。添加了用于使用Kafka启用异步ack的异步ack。要启用异步确认,请将属性设置为true。该属性仅在spring.kafka侦听器时适用。异步模式设置为手动或手动立即。
新的Elasticsearch Java Client的自动配置已经引入。它可以使用现有的spring.elasticsearch进行配置*配置属性。
在缺少Reactor Netty、Jetty的反应式客户端和Apache HTTP客户端的情况下,JdkClientHttpConnector现在将自动配置。这允许WebClient与JDK的HttpClient一起使用。 @SpringBootTest与主要方法 @SpringBootTest注释现在可以使用任何发现的@SpringBootConfiguration类的main(如果可用)。这意味着您的主方法执行的任何自定义SpringApplication配置现在都可以通过测试来获取。
要使用测试的主方法,请将@SpringBootTest的useMainMethod属性设置为useMainMethod。始终或使用MainMethod.WHEN_AVAILABLE。
Spring Boot 3.0中的弃用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。