⭐ New Features
- Align indices options of auto-configured ReactiveElasticsearchTemplate with Spring Data Elasticsearch's default #30378
- Rework spring.mustache properties to make it clear which are Servlet-specific #30273
- Remove support for spring.mongodb.embedded.features #30219
- Support podman for building images #30196
- Add EIGHTEEN to JavaVersion enum #30133
- Allow spring.data.mongodb.uri to override separate host, port, etc properties #30067
- Refine GraphQL server auto-configuration #30035
- Support overriding the default key-based sanitization #30006
- Configure FormattingConversionService in GraphQlAutoConfiguration #29638
- Add option to pass configured Docker host to the image builder container #29384
- Add configuration property for supported media types with reactive Mustache views #28858
- Add support for cache2k in memory caching #28498
🐞 Bug Fixes
- ConfigurationPropertyName#equals is not symmetric when adapt has removed trailing characters from an element #30393
- Thymeleaf auto-configuration in a reactive application can fail due to duplicate templateEngine beans #30386
- server.tomcat.keep-alive-timeout is not applied to HTTP/2 #30322
- Setting spring.mustache.enabled to false has no effect #30257
- bootWar is configured eagerly #30215
- Actuator
@ReadOperation
on Flux cancels request after first element emitted #30162 - Unnecessary allocations in Prometheus scraping endpoint #30126
- No metrics are bound for R2DBC ConnectionPools that have been wrapped #30101
- Condition evaluation report entry for a
@ConditionalOnSingleCandidate
that does not match due to multiple primary beans isn't as clear as it could be #30099 - DataFetcherExceptionResolver beans are not considered in GraphQlTester slice tests #30078
- Generated password are logged without an "unsuitable for production use" note #30071
- Files in META-INF are not found when deploying a Gradle-built executable war to a servlet container #30037
- Dependency management for Apache Kafka is incomplete #30032
- spring-boot-configuration-processor fails compilation due to
@DefaultValue
with a long value and generates invalid metadata for byte and short properties with out-of-range default values #30023 - Naming strategy and MBean exporter are configured inconsistently in JmxAutoConfiguration #29968
📔 Documentation
- Add Apache Kafka to the description of the Messaging section #30394
- Default value of spring.thymeleaf.reactive.media-types is not documented #30388
- Clarify type matching that is performed when using
@MockBean
and@SpyBean
#30383 - Fix links to Spring Security Reference Guide in Accessing the H2 Console in a Secured Application #30380
- Document how to access the H2 Console in a secured web application #30347
- Add Netty in "Enable HTTP Response Compression" #30345
- Fix JsonSerializer example in reference guide #30331
- WebSockets section missing in reference guide #30275
- Include default Dev Tools properties in the reference documentation #30167
- Document the WebSocket-related exclusions that are required to use Jetty 10 #30150
- Fix typo #30121
- Anchor tag for Spring HATEOAS does not redirect properly #30119
- Add documentation for spring.profiles.include #30116
- Document when config data properties are invalid #30115
- Document the scalar types supported by MapBinder #30112
- Document how to rely on ServletContext with an embedded container setup #30110
- Clarify that build plugins or the CLI does not have an auto-compile feature #30094
- Document how to structure configurations so that
@Bean
methods are included in slice tests #30092 - Remove non-existent spring.data.cassandra.connection.connection-timeout property from the documentation #30081
- Use Gradle's task configuration avoidance APIs in the main reference docs #30060
- Use Gradle's task configuration avoidance APIs in the Gradle Plugin's reference docs #30058
- Document plugging in custom sanitisation rules with a SanitizingFunction bean #30054
- Improve property placeholder documentation to mention environment variables and default values #30051
- Polish web examples in reference doc #30049
- Add links to Spring Boot for Apache Geode to the reference documentation #30019
🔨 Dependency Upgrades
- Upgrade to Awaitility 4.2.0 #30284
- Upgrade to Cassandra Driver 4.14.0 #30285
- Upgrade to Couchbase Client 3.2.6 #30286
- Upgrade to Dropwizard Metrics 4.2.9 #30287
- Upgrade to Ehcache3 3.10.0 #30288
- Upgrade to Elasticsearch 7.17.1 #30289
- Upgrade to Embedded Mongo 3.4.3 #30341
- Upgrade to Flyway 8.5.4 #30290
- Upgrade to Groovy 3.0.10 #30291
- Upgrade to Hazelcast 5.1.1 #30292
- Upgrade to Hibernate 5.6.7.Final #30293
- Upgrade to Hibernate Validator 6.2.3.Final #30294
- Upgrade to HtmlUnit 2.60.0 #30390
- Upgrade to Infinispan 13.0.8.Final #30296
- Upgrade to Jackson Bom 2.13.2 #30297
- Upgrade to Lettuce 6.1.8.RELEASE #30342
- Upgrade to Liquibase 4.9.0 #30298
- Upgrade to Log4j2 2.17.2 #30299
- Upgrade to Logback 1.2.11 #30305
- Upgrade to Maven Compiler Plugin 3.10.1 #30300
- Upgrade to Maven Dependency Plugin 3.3.0 #30301
- Upgrade to Micrometer 1.9.0-M4 #30014
- Upgrade to Mockito 4.4.0 #30302
- Upgrade to MongoDB 4.5.1 #30416
- Upgrade to Neo4j Java Driver 4.4.5 #30303
- Upgrade to Netty 4.1.75.Final #30306
- Upgrade to R2DBC Bom Borca-SR1 #30307
- Upgrade to Rabbit Stream Client 0.5.0 #30308
- Upgrade to Reactor 2020.0.17 #30187
- Upgrade to Selenium HtmlUnit 3.60.0 #30391
- Upgrade to SendGrid 4.9.1 #30417
- Upgrade to Spring AMQP 2.4.3 #30189
- Upgrade to Spring Data 2021.2.0-M4 #30185
- Upgrade to Spring for GraphQL 1.0.0-M6 #29637
- Upgrade to Spring Framework 5.3.17 #30188
- Upgrade to Spring Integration 5.5.10 #30193
- Upgrade to Spring Kafka 2.8.4 #30352
- Upgrade to Spring Retry 1.3.2 #30311
- Upgrade to Spring Security 5.7.0-M3 #30191
- Upgrade to Spring WS 3.1.3 #30192
- Upgrade to Tomcat 9.0.60 #30313
- Upgrade to UnboundID LDAPSDK 6.0.4 #30314
- Upgrade to Versions Maven Plugin 2.10.0 #30315
❤️ Contributors
We'd like to thank all the contributors who worked on this release!