⭐ New Features
- Use GraphQL Observation instrumentation #32794
- Make consistent use of Property for Gradle task configuration #32769
- When the GraalVM Native Image Gradle plugin is applied, configure bootBuildImage to build a native image #32768
- When the native Maven profile is enabled, configure build-image to build a native image #32764
- Process logback.xml ahead-of-time to allow its configuration to be used in a native image #32756
- When using Brave, auto-configure a CompositeSpanHandler with span exporting predicates, filters, and reporters #32753
- Generate native-image argfile containing reachability metadata excludes for buildpacks to use #32738
- When the GraalVM Native Image Gradle plugin is applied, configure bootJar to contain the output of collectReachabilityMetadata #32737
- Provide maven configuration for native-build-tools reachability metadata goal #32736
- Log4J2 configuration URLs should respect system settings #32735
- Support profile specific Log4j2 configuration #32734
- Add Log4J2 PropertySource backed by the Spring Environment #32733
- Add Log4j2 StrLookup backed by the Spring Environment #32732
- Add Spring Environment to Log4j2 LoggerContext #32731
- Add support 'log4j.configurationFile' system property #32730
- Relocate
@ConstructorBinding
to bind package and update default behavior #32660 - Remove spring.webflux.multipart.streaming property #32658
- Auto-configure ProblemDetails support for Spring MVC and Spring WebFlux #32634
- Make auto-configured Brave Tracer more compliant with OTel tracer #32615
- Allow the auto-configured Rabbit Stream Environment to be customized #32580
- Add support for specifying application arguments when application is processed ahead-of-time #32579
- Provide extensions that remove the need for the log4j-spring-boot log4j2 module #32578
- Allow user to replace auto-configured Spring Data JDBC beans with their own #32571
- Remove remaining properties and APIs that were deprecated in Spring Boot 2.x #32548
- Move WebFlux metrics auto-configuration to the new Observation instrumentation #32539
- Move MVC metrics auto-configuration to the new Observation instrumentation #32538
- Prefer WebClient to RestTemplate when creating the Zipkin Sender #32529
- Update WebClient metrics auto-configuration to the new Observation instrumentation #32518
- Require micrometer-tracing-bridge-otel to auto-configure OpenTelemetry #32503
- Require micrometer-tracing-bridge-brave to auto-configure Brave #32502
- Update RestTemplate metrics auto-configuration to the new Observation instrumentation #32484
- MDC & Baggage AutoConfiguration for Micrometer Tracing with Brave and OpenTelemetry #32480
- Allow a Rabbit Stream Environment and Template to be auto-configured when not using a streaming listener container factory #32477
- Adapt to HttpComponentClientHttpRequestFactory changes #32461
- Add auto-configuration for Prometheus Exemplars #32415
- Auto-configure a TracingAwareMeterObservationHandler to make tracing interoperable with metrics #32399
- Add logging at INFO level if AOT is enabled and working #32396
- Output auto-configuration report for context processed ahead-of-time #32109
- Add native-image support for Flyway #31999
- Allow "native" Maven profile to support both NBT and buildpacks #31770
- Change phases of WebServer start-stop and graceful shutdown lifecycles to allow other smart lifecycles to run before graceful shutdown #31714
- Allow ThreadDumpEndpoint to call ThreadMXBean in a native image #31680
- Deprecate server.max-http-header-size in favor of new server.max-http-request-header-size property #29382
- Make the runScripts method on AbstractScriptDatabaseInitializer more extensible #29137
🐞 Bug Fixes
- Multi-Document-Separators "#---" comment checks do not account for '!' prefixed comments #32778
- Actuator configprops endpoint does not display DataSize properties correctly #32776
@Bean
methods in KafkaAutoConfiguration provide less type information than they could #32774- PEM formatted elliptic-curve TLS keys are an unrecognized private key format #32682
- Auto-configuration of ObservationRestTemplateCustomizer fails when micrometer-core is not on the classpath #32676
- Correct configuration of native and AOT-related tasks depends on plugin application order #32661
- ConstructorBinding default detection is considered with a private constructor #32639
- ConfigDataProperties is missing RuntimeHints #32608
- Killing
mvn spring-boot:run
does not kill child process #32607 - Assertion calls on CapturedOutput with Kotlin are very slow #32576
- Classpath scanning of Jackson mixin modules does not work in a native image #32567
- Empty
@DefaultValue
cannot be used on collections, maps, arrays or optional values #32564 - Native tests fail when using
@SpringBootTest
with RANDOM_PORT or DEFINED_PORT #32542 - Use of reflection in AbstractCompositeHealthContributorConfiguration can cause an app using actuator to fail to start in a native image #32541
- WebClient- and RestTemplate-based Zipkin senders can cause a bean dependency cycle #32528
- AOT processing does not work when Devtools is on the classpath #32517
- CouchbaseReactiveHealthIndicator uses blocking API to retrieve the cluster diagnostics #32514
- BootBuildImage's archiveFile property is annotated as an
@Input
but should be annotated as an@InputFile
#32500 - Response from loggers endpoint is incomplete in a native image #32486
- Logging beans are missing during AOT processing #32483
- EmbeddedLdapContextConfiguration LdapContextSource bean creation not populating base property #23030
📔 Documentation
- Fix typos in logging.adoc #32821
- Harmonize code sample in the "Type-safe Configuration Properties" section #32819
- Update getting started documentation to use
@SpringBootApplication
#32780 - Check documentation version links #32772
- Add AOT section to Gradle Plugin #32750
- Switch Java version displayed in documentation #32746
- Fix typo "Elastixsearch" #32656
- Add Graal Native documentation #32582
- Add Javadoc since for UseMainMethod #32568
- Provide since and for removal information on
@Deprecated
APIs #32549 - Remove redundant
@ExtendWith
(SpringExtension.class) from MyJmxTests example #32516 - Limit modules in the aggregated javadoc to those that we expect an application to depend upon #31955
- Document management.tracing.enabled property #31656
🔨 Dependency Upgrades
- Upgrade to Artemis 2.26.0 #32701
- Upgrade to Byte Buddy 1.12.18 #32702
- Upgrade to Cassandra Driver 4.15.0 #32670
- Upgrade to Dependency Management Plugin 1.1.0 #32760
- Upgrade to Ehcache3 3.10.2 #32703
- Upgrade to Elasticsearch Client 8.4.3 #32671
- Upgrade to Flyway 9.5.0 #32796
- Upgrade to Groovy 4.0.6 #32797
- Upgrade to Hazelcast 5.1.4 #32705
- Upgrade to Hibernate 6.1.4.Final #32672
- Upgrade to HtmlUnit 2.65.1 #32706
- Upgrade to Infinispan 14.0.1.Final #32798
- Upgrade to Jackson 2.14.0-rc2 #32771
- Upgrade to Jackson Bom 2.13.4.20221013 #32725
- Upgrade to Jedis 4.3.0 #32673
- Upgrade to Jetty Reactive HTTPClient 3.0.7 #32707
- Upgrade to Kafka 3.3.1 #32574
- Upgrade to Kotlin 1.7.20 #32708
- Upgrade to Lettuce 6.2.1.RELEASE #32674
- Upgrade to Liquibase 4.17.0 #32709
- Upgrade to Log4j2 2.19.0 #32498
- Upgrade to Logback 1.4.4 #32710
- Upgrade to Micrometer 1.10.0-RC1 #32598
- Upgrade to Micrometer Tracing 1.0.0-RC1 #32616
- Upgrade to Mockito 4.8.1 #32799
- Upgrade to MongoDB 4.8.0-beta0 #32684
- Upgrade to MySQL 8.0.31 and extend dependency management to new Maven identifiers #32782
- Upgrade to Native Build Tools Plugin 0.9.16 #32800
- Upgrade to Neo4J Java Driver 5.0.0 #32620
- Upgrade to Neo4j Java Driver 5.1.0 #32711
- Upgrade to Netty 4.1.84.Final #32712
- Upgrade to OpenTelemetry 1.19.0 #32713
- Upgrade to Rabbit Stream Client 0.8.0 #32714
- Upgrade to Reactor 2022.0.0-RC1 #32599
- Upgrade to Selenium 4.5.0 #32715
- Upgrade to Selenium HtmlUnit 4.5.0 #32716
- Upgrade to SLF4J 2.0 and Logback 1.4 #12649
- Upgrade to SLF4J 2.0.3 #32717
- Upgrade to SnakeYAML 1.33 #32522
- Upgrade to Spring AMQP 3.0.0-RC1 #32602
- Upgrade to Spring Batch 5.0.0-RC1 #32618
- Upgrade to Spring Data 2022.0.0-RC1 #32601
- Upgrade to Spring Framework 6.0.0-RC2 #32696
- Upgrade to Spring GraphQL 1.0.0-RC1 #32605
- Upgrade to Spring HATEOAS 2.0.0-RC1 #32652
- Upgrade to Spring Integration 6.0.0-RC1 #32619
- Upgrade to Spring Kafka 3.0.0-RC1 #32603
- Upgrade to Spring LDAP 3.0.0-RC1 #32624
- Upgrade to Spring RESTDocs 3.0.0-RC1 #32623
- Upgrade to Spring Retry 2.0.0-RC2 #32600
- Upgrade to Spring Security 6.0.0-RC1 #32604
- Upgrade to Spring Session 3.0.0-RC1 #32606
- Upgrade to Spring WS 4.0.0-RC1 #32621
- Upgrade to Thymeleaf 3.1.0.RC1 #32628
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.0.RC1 #32718
- Upgrade to Tomcat 10.0.27 #32719
- Upgrade to Undertow 2.2.20.Final #32720
❤️ Contributors
We'd like to thank all the contributors who worked on this release!