⭐ New Features
- Auto-configure Spring Data's new ReactiveElasticsearchClient in place of the old one #31755
- Add auto-configuration for JdkClientHttpConnector #31709
- Drop support for String path matching for MVC endpoint handler mappings #31700
- Enable GraalVM reachability metadata repository #31687
- Add config property for KafkaAdmin modifyTopicConfigs #31679
- Reinstate support for Hibernate metrics #31675
- AOT support for Actuator #31671
- Upgrade to Spring REST Docs 3.0.0-M4 #31621
- Support deriving a DataSourceBuilder from a wrapped DataSource #31605
- Add a configuration property for the trusted proxies of Tomcat's Remote IP valve #31576
- Remove --allow-incomplete-classpath from native-image arguments #31568
- Adapt to change in default strategy for URL path matching in Spring MVC #31547
- Allow Jackson's lazily created standard JDK serializers to be used in a native image #31537
- Add support for property binding in SpringApplication when running in native-image #31534
- Add resource hints for schema and data scripts #31533
- Add native-image support for JavaLoggingSystem #31531
- Allow HTTP message converters to be auto-configured in a native image that is not a web app #31528
- Remove YamlJsonParser #31498
- Raise the minimum supported version of Kotlin to 1.7 #31391
- Add PropertyMapper.to(...) API designed for immutable instances #31323
- Do not auto-configure a ReactiveUserDetailsService when an AuthenticationManagerResolver bean is present #31317
- Add resource hints for application properties #31311
- Add resource hints for default templates location #31310
- Disable tracing in integration tests #31308
- Add Runnable variant of TestPropertyValues.applyToSystemProperties #31303
- Add a method to ApplicationContextRunner that prepares but does not refresh the context #31302
- Apply initializers and bean registrations before registering classes in ApplicationContextRunner #31280
- Add resource hints for serving static web content #31278
- Add AOT support for immutable configuration properties #31247
- Register runtime hints for
@ConfigurationProperties
annotation #31227 - Raise the minimum supported version of Gradle to 7.5 #31215
- Remove redundant throws declarations from public APIs #31179
- Support management contexts with AOT #31163
- Auto-configure JvmCompilationMetrics #31151
- Allow Prometheus PushGateway to be configured to perform a PUT on shutdown #31104
- Add WebClient based sender for Zipkin #30792
- Remove support for Elasticsearch's RestHighLevelClient #30647
- Support new ElasticsearchClient #28597
- Move auto-configuration for reactive Elasticsearch client into o.s.b.autoconfigure.elasticsearch #28068
- Allow configuring WebDriver with TestNG #27947
- Remove spring.session.store-type in favor of a defined order for which implementation will win when multiple are available #27756
- Remove support for running multiple Spring Batch jobs #25373
🐞 Bug Fixes
- Publishing a docker image to a private registry fails without authentication #31825
- In a non-reactive application, health indicators in a parent context are not found #31819
- Dependency management for Derby is incomplete #31815
- A router function with attributes causes /actuator/mappings to return a 500 response due to an UnsupportedOperationException #31807
- InstanceAlreadyExistsException when using Actuator with multiple context and JMX enabled #31805
- A project dependency on a Java library does not make the library's resources visible to AOT source generation #31803
- Using 'ImportAutoConfigurationImportSelector' in the jar package loaded by a custom class loader throws ClassNotFoundException #31802
- Trailing whitespace in the value of a property is hard to identify in failure analysis descriptions #31781
- Log4j2's shutdown hook is not disabled when using Log4j 2.18 or later #31733
- spring-boot-starter-jetty does not use the official Jakarta Servlet and WebSocket APIs #31720
- HTTP Server and Data repositories metrics record null for the description #31707
- Deprecation hint for spring.data.mongodb.grid-fs-database is located in the wrong section #31691
- Image building fails with latest Paketo base builder and additional buildpacks configured #31559
- Tomcat fails to start when PEM files are used and key-store-password is not specified #31529
- Values in a spring.data.cassandra.config file can't override some defaults defined in CassandraProperties #31504
@RestControllerAdvice
@ExceptionHandler
Inconsistent behavior with@RestControllerEndpoint
#31502- Malformed json causes BasicJsonParser to throw a NullPointerException #31500
- Metadata generated by the configuration properties annotation processor can miss inherited properties from nested classes #31485
- OAuth2 Resource Server Auto-Configuration can only configure a single JWS algorithm #31404
- JarFile implementation calls close early which breaks verification of signed unpacked nested jars on Oracle JDK #31396
- Health indicators that take a long time to respond are difficult to diagnose #31385
- Maven shade plugin configuration in spring-boot-starter-parent does not append META-INF/spring/*.imports files #31368
- ZipkinConfigurations.SenderConfiguration uses
@ConditionalOnClass
on a@Bean
method #31353 - Custom Converter annotated with
@ConfigurationPropertiesBinding
does not get selected if targetType has a static factory method different return type #31342 - Zipkin auto-configuration should not back off on custom SpanHandler #31273
- Micrometer tracing auto-configuration doesn't register all ObservationHandlers #31272
- spring-boot-dependencies manages spring-ldap-ldif-batch which no longer exists #31256
- ConfigurationPropertiesBeanFactoryInitializationAotProcessor does not handle singleton #31248
- When building with Maven, classes generated by AOT are not included in final artifact #31245
- Base packages are not contributed with AOT #31223
- Prevent
main
method to continue once the AOT context has been optimized #31219 - Dependency task can fail due to BootJar and BootWar afterResolve hooks #31214
- spring-configuration-metadata.json is missing for additional-spring-configuration-metadata.json after switching from
@Configuration
to@AutoConfiguration
#31191 - MimeMappings does not include application/wasm #31189
- Dependency management for mimepull is redundant and the managed version is incompatible with Java 8 #31187
- Binder(ConfigurationPropertySource... sources) does not assert that sources contains only non-null elements #31184
- WebMvcMetricsFilter stopped working since 2.7.0 #31152
📔 Documentation
- Clarify how docker image publishing registry is determined #31827
- Fix deprecations in javadocs #31713
- Remove Jolokia references from the documentation #31549
- Make SpringApplication Kotlin samples idiomatic #31466
- Harmonize Kotlin example #31461
- Remove duplicate content from "The Spring WebFlux Framework" section #31382
- Document that property placeholders should use the canonical property name form #31370
- Fix typos in the reference documentation #31367
- Enable Links for the Javadoc of the Gradle Plugin #31363
- Remove "earlier in this chapter" from places where content is now elsewhere in the documentation #31361
- Restore custom favicon documentation #31359
- Document that when using Lombok it must be configured to run before spring-boot-configuration-processor #31357
- Use Lambda-based API in Spring Security examples #31355
- Fix typo in name of imports file in javadoc of ImportCandidates.from #31340
- Update Dynatrace Micrometer registry documentation #31339
- Typos in documentation ("spring-factories" instead of "spring.factories") #31207
- Fix Custom Layers Configuration section title in Maven plugin docs #31181
- Add link to 'Error Handling Spring Boot Starter' #31156
🔨 Dependency Upgrades
- Upgrade to Artemis 2.23.1 #31583
- Upgrade to AssertJ 3.23.1 #31331
- Upgrade to Byte Buddy 1.12.12 #31625
- Upgrade to Caffeine 3.1.1 #31626
- Upgrade to Couchbase Client 3.3.2 #31627
- Upgrade to Dependency Management Plugin 1.0.12.RELEASE #31557
- Upgrade to Derby 10.16.1.1 #31584
- Upgrade to Dropwizard Metrics 4.2.10 #31628
- Upgrade to Flyway 9.0.1 #31723
- Upgrade to Groovy 4.0.3 #31631
- Upgrade to H2 2.1.214 #31632
- Upgrade to Hazelcast 5.1.2 #31633
- Upgrade to Hibernate 6.1.1.Final #31674
- Upgrade to HtmlUnit 2.63.0 #31758
- Upgrade to HttpCore5 5.1.4 #31759
- Upgrade to InfluxDB Java 2.23 #31635
- Upgrade to Jakarta Json 2.0.2 #31636
- Upgrade to Jakarta Validation 3.0.2 #31637
- Upgrade to Jedis 4.2.3 #31586
- Upgrade to Jetty 11.0.11 #31639
- Upgrade to Jetty Reactive HTTPClient 3.0.6 #31638
- Upgrade to jOOQ 3.17.2 #31640
- Upgrade to JsonAssert 1.5.1 #31641
- Upgrade to Kotlin 1.7.10 #31642
- Upgrade to Kotlin Coroutines 1.6.4 #31760
- Upgrade to Lettuce 6.2.0.RELEASE #31761
- Upgrade to Liquibase 4.13.0 #31762
- Upgrade to Log4j2 2.18.0 #31589
- Upgrade to MariaDB 3.0.6 #31644
- Upgrade to Maven Assembly Plugin 3.4.1 #31645
- Upgrade to Maven Deploy Plugin 3.0.0 #31832
- Upgrade to Maven Enforcer Plugin 3.1.0 #31591
- Upgrade to Maven Install Plugin 3.0.0 #31833
- Upgrade to Maven Invoker Plugin 3.3.0 #31592
- Upgrade to Micrometer 1.10.0-M3 #31617
- Upgrade to Micrometer Tracing 1.0.0-M6 #31657
- Upgrade to Mockito 4.6.1 #31332
- Upgrade to MongoDB 4.7.0-beta0 #31763
- Upgrade to Neo4j Java Driver 4.4.9 #31764
- Upgrade to Netty 4.1.79.Final #31765
- Upgrade to OkHttp 4.10.0 #31593
- Upgrade to OpenTelemetry 1.16.0 #31766
- Upgrade to Oracle Database 21.6.0.0.1 #31595
- Upgrade to Postgresql 42.4.0 #31596
- Upgrade to Prometheus Client 0.16.0 #31597
- Upgrade to R2DBC 1.0 and adapt to r2dbc-bom no longer being published #31702
- Upgrade to Rabbit AMQP Client 5.15.0 #31598
- Upgrade to Reactive Streams 1.0.4 #31649
- Upgrade to Reactor 2022.0.0-M4 #31609
- Upgrade to REST Assured 5.1.1 #31333
- Upgrade to RxJava3 3.1.5 #31650
- Upgrade to Selenium HtmlUnit 3.62.0 #31600
- Upgrade to SendGrid 4.9.3 #31652
- Upgrade to Spring Batch 5.0.0-M4 #31623
- Upgrade to Spring Data 2022.0.0-M5 #31619
- Upgrade to Spring Framework 6.0.0-M5 #31241
- Upgrade to Spring HATEOAS 2.0.0-M5 #31683
- Upgrade to Spring Integration 6.0.0-M4 #31624
- Upgrade to Spring Kafka 3.0.0-M5 #31620
- Upgrade to Spring Security 6.0.0-M6 #31622
- Upgrade to Tomcat 10.0.22 #31653
- Upgrade to Undertow 2.2.18.Final #31654
- Upgrade to Versions Maven Plugin 2.11.0 #31601
- Upgrade to WebJars Locator Core 0.52 #31602
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
- @TheoCaldas
- @m-kay
- @mhalbritter
- @felixscheinost
- @vpavic
- @dependabot[bot]
- @naveensrinivasan
- @izeye
- @anthonyvdotbe
- @pirgeo
- @dalbani
- @ittays
- @youribonnaffe
- @tudormarc
- @onobc
- @cansi
- @terminux
- @adrianbob
- @wimdeblauwe
- @dreis2211
- @jakubskalak
- @sdeleuze
- @1993heqiang
- @hpoettker
- @cdalexndr
- @aoyvx
- @ningenMe
- @mp911de
- @larsgrefer
- @jprinet
- @eddumelendez
- @aooohan
- @matei-cernaianu
- @StefanBratanov
- @GGGGGHT