⭐ New Features
- Improve
SpringValidatorAdapterandMethodValidationAdapterperformance #36624 - Add missing
@Deprecated(forRemoval = true) for deleted in 7.0 #36591 - Deprecate
methodIdentification()inCacheAspectSupportfor removal #36576 - Improve error handling in multipart codecs #36564
- LazyConnectionDataSourceProxy does not work well with Hibernate's multi-tenancy by schema strategy #36529
- MySQL Error 149 (Galera/WSREP conflict) not translated to ConcurrencyFailureException in Spring JDBC/ORM #36510
🐞 Bug Fixes
- Handle Kotlin nullable value class param correctly in
CoroutineUtils#36643 - NullPointerException in ServerSentEvent when trying to set id or event properties #36634
@Sqlfails ifDataSourceis wrapped in aTransactionAwareDataSourceProxy#36630- WebDataBinder unnecessarily instantiates collections when using the "!" and "_" prefixes #36627
- Cache pollution from high-cardinality FieldError default messages in MessageSourceSupport #36623
- ContentCachingRequestWrapper does not allow unlimited content caching #36620
MergedAnnotationdoes not useClassLoaderfor method or field #36614AnnotationBeanNameGeneratorfails when an annotation references a non-existent class #36588FileSystemResourcedoes not strictly follow theResource#isReadable()contract #36585- Query not hidden in DefaultClientResponse checkpoint #36571
- LazyConnectionDataSourceProxy does not pass on holdability to target Connection #36530
DefaultJmsListenerContainermay hang in an endless loop indoShutdown#36511- Inconsistent codings resolution in resource resolvers #36508
📔 Documentation
- Clarify semantics of HttpMethod.valueOf() #36653
- Document that
spring.profiles.activeis ignored by@ActiveProfiles#36636 - Document whitespace semantics in SpEL expressions #36629
MergedAnnotation.asAnnotationAttributes()Javadoc incorrectly states that it creates an immutable map #36568- Introduce Kotlin examples for Bean Overrides (
@MockitoBean, etc.) #36542 - Fix incorrect cross-reference links in AbstractEnvironment Javadoc #36517