⚠️ Attention Required
- Provide advance warning of the deprecation and forthcoming removal of OpenTelemetry's ZipkinSpanExporter #49557
- Tomcat's default max part count is too low in 4.1 #49312
⭐ New Features
- Introduce Generic AMQP 1.0 client support #49621
- Rename spring-boot-amqp to spring-boot-rabbitmq #49620
- Add support for SslBundles to OTLP metrics export #49590
- Add support for SslBundles to OTLP traces export #49584
- Add support for SslBundles to OTLP logging export #49583
- Add more fine-grained support for selecting metric exemplars #49572
- Add property to disable the OpenTelemetry SDK #49564
- Add properties to select OpenTelemetry's sampler #49548
- Configure BootBuildInfo task created using the DSL as a src dir of the main source set's resources #49547
- Add properties to configure BatchLogRecordProcessor #49543
- Add type-safe binding support for gPRC service config #49540
- Add auto-configuration for OTLP exemplars #49538
- Output Docker Compose's logs when start or up fails #49423
- Provide protobuf gradle plugin support #49369
- Provide protobuf-maven-plugin configuration in the starter parent POM #49353
- Add FailureAnalyzedException to reduce the number of internal FailureAnalyzers required #49320
- Add more styling support to the Logback and Log4j2 color converters #49285
- Create reusable default TaskScheduler configuration #49280
- Update TestRestTemplate's default cookie handling to match RestTemplate's #49261
- Add Spring gRPC server and client observation support #49056
- Fail gRPC servlet applications if server.http2.enabled is not enabled #49050
- Add Spring gRPC Server Health Check Support #49048
- Add Spring gRPC server and client security support #49047
- Add Spring gRPC Testing Support #49046
- Add Spring gRPC Client Support #49045
- Add Spring gRPC Server Support #49044
- Add support for Spring gRPC #49043
- Add builder customizer for SpringOpaqueTokenIntrospector and SpringReactiveOpaqueTokenIntrospector #49029
- Deprecate LiveReload support for removal #48971
- Add SSL support to auto-configuration for RabbitMQ Streams #48960
- Allow empty objects to be loaded from YAML #48958
- Support binding of default properties when an empty property is defined #48920
- Auto-configure Jackson mapper beans with a bean-based HandlerInstantiator #48711
- Add support for auto-configuring ExpressionJwtGrantedAuthoritiesConverter #48490
- Deprecate RootUriTemplateHandler in favor of DefaultUriBuilderFactory #48350
- Add Log4j2 rolling policy configuration #47260
- Enable auto-configuration of OAuth2 resource server machinery in a non-webapp #43978
- Add support for Spring Batch MongoDB #43236
🐞 Bug Fixes
- EndpointRequest request matcher for health groups is too complex #49650
- "/cloudfoundryapplication" web path is not limited to Actuator #49647
- Fix EndpointRequest.toLinks() when base-path is '/' #49618
- Docker fails when a 'tcp://' address ends with a slash (for example 'tcp://docker:2375/') #49597
- RSocket exposes duplicate endpoint for websocket setups #49595
- Failure analysis for a missing mail sender is misleading #49585
- Dependency management for HttpClient5 misses httpclient5-observation #49553
- SpringBootContextLoader mentions class that no longer exists in message for classes or locations assertion #49536
- Missing starter for spring-boot-restdocs #49524
- Ordering of 'spring.config.import' is inconsistent when defined in environment or system properties #49483
- "spring.main.cloud-platform=none" does not disable cloud features #49480
- SSL support with Docker Compose does not work as documented #49386
- NoSuchMethodException when forcing the use of Log4J2LoggingSystem using org.springframework.boot.logging.LoggingSystem system property #49384
- ErrorPageRegistrarBeanPostProcessor is not auto-configured in war deployments and the ErrorPageCustomizer is not applied #49380
- Auto-configuration overrides authorization server configuration applied by Customizer beans #49379
- Using
@AutoConfigureWebTestClientprevents separate configuration of spring.test.webtestclient.timeout from taking effect #49345 - Several reactive starters do not depend on spring-boot-reactor #49335
- HTTP Service Interface Client doesn't work in a native image due to missing property binding #49326
- RouterFunctions descriptions in Actuator do not support nesting #49303
- Maven plugin does not set '-parameters' option when processing AOT code #49296
📔 Documentation
- Document support for Java 26 #49605
- List all supported colors when describing color-coded log output #49563
- Improve EndpointRequest matcher documentation #49521
- Clarify that running is the only supported input state when triggering a Quartz job through the Actuator endpoint #49515
- Document security considerations for forwarded headers in cloud deployments #49511
- Tutorial in the reference guide has outdated instructions #49430
- Document additional repositories required for shibboleth.net #49393
- Javadoc of JettyHttpClientBuilder refers to the wrong type #49388
- Example spring-devtools.properties file is shown in the wrong format #49363
- Clarify inferred relationships between OAuth 2 registrations and providers #49328
- Mention using org.springframework.boot.aot Gradle plugin directly for AOT processing with the JVM #49322
- Remove superfluous semi-colon from read timeout configuration example for HTTP service interface clients #49313
- Update CLI's INSTALL.txt to reflect Groovy no longer being bundled #49299
- JDK requirement for the CLI still refers to Java 8 #49294
- Java and Kotlin samples of an environment post processor are inconsistent #49288
- Configuration properties changelog is incomplete as the list of modules is applied for 4.0 only #49273
🔨 Dependency Upgrades
- Upgrade to Artemis 2.52.0 #49485
- Upgrade to Byte Buddy 1.18.7 #49486
- Upgrade to Commons Logging 1.3.6 #49549
- Upgrade to DB2 JDBC 12.1.4.0 #49550
- Upgrade to Elasticsearch Client 9.3.1 #49447
- Upgrade to Flyway 12.1.1 #49633
- Upgrade to Hibernate 7.2.7.Final #49611
- Upgrade to HttpCore5 5.4.2 #49489
- Upgrade to Infinispan 16.1.2 #49626
- Upgrade to Jackson 2 Bom 2.21.1 #49329
- Upgrade to Jackson Bom 3.1.0 #49330
- Upgrade to Jakarta XML WS 4.0.3 #49490
- Upgrade to JBoss Logging 3.6.3.Final #49634
- Upgrade to Jedis 7.4.0 #49566
- Upgrade to Jetty 12.1.7 #49491
- Upgrade to Kotlin 2.3.20 #49613
- Upgrade to Lettuce 7.5.0.RELEASE #49449
- Upgrade to Liquibase 5.0.2 #49492
- Upgrade to Lombok 1.18.44 #49577
- Upgrade to Maven Failsafe Plugin 3.5.5 #49493
- Upgrade to Maven Resources Plugin 3.5.0 #49494
- Upgrade to Maven Shade Plugin 3.6.2 #49495
- Upgrade to Maven Surefire Plugin 3.5.5 #49496
- Upgrade to Micrometer 1.17.0-M3 #49435
- Upgrade to Micrometer Tracing 1.7.0-M4 #49436
- Upgrade to Mockito 5.23.0 #49578
- Upgrade to MongoDB 5.7.0-beta1 #49450
- Upgrade to MSSQL JDBC 13.4.0.jre11 #49588
- Upgrade to Native Build Tools Plugin 0.11.5 #49498
- Upgrade to Neo4j Java Driver 6.0.3 #49451
- Upgrade to OpenTelemetry 1.59.0 #49452
- Upgrade to Pulsar 4.1.3 #49499
- Upgrade to Rabbit AMQP Client 5.29.0 #49500
- Upgrade to Reactor Bom 2025.0.4 #49437
- Upgrade to Selenium 4.41.0 #49501
- Upgrade to Selenium HtmlUnit 4.41.0 #49502
- Upgrade to SnakeYAML 2.6 #49503
- Upgrade to Spring AMQP 4.1.0-M3 #49438
- Upgrade to Spring Batch 6.0.3 #49439
- Upgrade to Spring Data Bom 2026.0.0-M2 #49440
- Upgrade to Spring Framework 7.0.6 #49441
- Upgrade to Spring HATEOAS 3.1.0-M1 #49589
- Upgrade to Spring Integration 7.1.0-M3 #49442
- Upgrade to Spring Kafka 4.1.0-M2 #49443
- Upgrade to Spring LDAP 4.1.0-M2 #49444
- Upgrade to Spring Pulsar 2.0.4 #49445
- Upgrade to Spring Security 7.1.0-M3 #49446
- Upgrade to Spring WS 5.0.1 #49532
- Upgrade to SQLite JDBC 3.51.3.0 #49614
- Upgrade to Testcontainers 2.0.4 #49656
- Upgrade to Thymeleaf Layout Dialect 4.0.0 #49361
❤️ Contributors
Thank you to all the contributors who worked on this release:
@FBibonne, @Joowon-Seo, @answndud, @apoorvdarshan, @bbbbooo, @chandanv89, @giyeon95, @hojooo, @itsmevichu, @jayychoi, @jonatan-ivanov, @l2yujw, @mayankvirole, @ngocnhan-tran1996, @qnnn, @quaff, @sbrannen, and @ultraq