⭐ New Features
- Improve regex "." matching for URL paths #28815
- Spring JDBC does not recognize LocalDate and LocalDateTime in javaType to sqlType Mapping #28778
- ResolvableType.forInstance should return NONE for null instance #28776
- Correctly identify MaxUploadSizeExceededException through keywords in message from Jetty 9.4.x #28759
- Introduce StringUtils.trimAllWhitespace(CharSequence) #28757
- Trim string input in Converters where whitespace is irrelevant #28756
- Trim string input in PropertyEditors where whitespace is irrelevant #28755
- Improve diagnostics for CGLIB ClassLoader issues on Java 9+ #28747
- Create well-known non-interface types in CollectionFactory without using reflection #28718
- Revise internals of LoggingCacheErrorHandler #28672
- Simplify creation of LoggingCacheErrorHandler with logged stacktrace #28670
- Fix DataSourceUtils inconsistent exception handling #28669
- Introduce lenient parsing in DataSize regarding whitespace #28643
- Support adding rather than replacing modules in Jackson2ObjectMapperBuilder #28633
- Add
MockMvcRequestBuilders.multipart(HttpMethod, String, Object...)
#28631 - Avoid parsing request body in DispatcherServlet for "parameters={masked}" log message #28587
- Avoid synchronization in AbstractAspectJAdvice#calculateArgumentBindings #26377
🐞 Bug Fixes
- WebFlux multipart temporary file not deleted when the client disconnects early #28740
- Ensure channelExecutors and taskScheduler in STOMP WebSocket config are qualified #28736
- MockHttpServletResponse addHeader does not allow Comment part with Set-Cookie header #28730
- Meta-annotations are unnecessarily synthesized in MergedAnotations #28704
GenericApplicationContext
does not honorProtocolResolver
when a resource loader is set viasetResourceLoader()
#28703- R2DBC:
@Transactional
(readOnly) is applied to the connection before the transaction has begun #28610
📔 Documentation
- Fix Kotlin code snippets language #28810
- Fix typos in reference docs and project documentation #28805
- Fix and improve Javadoc in spring-beans and spring-aop #28803
- Fix and improve Javadoc in spring-core and spring-context #28802
- Fix and improve Javadoc in spring-messaging, spring-jms and spring-expression #28800
- Fix and improve Javadoc in spring-r2dbc, spring-oxm, spring-orm and spring-jdbc #28796
- Fix and improve Javadoc in spring-test #28795
- Fix and improve Javadoc in spring-tx #28794
- Fix and improve Javadoc in spring-web #28791
- Fix and improve Javadoc in spring-webflux #28790
- Fix and improve Javadoc in spring-webmvc #28789
- Fix and improve Javadoc in spring-websocket #28788
- Fix Kotlin example for defines a custom
@Production
#28680 - Fix a typo in ResponseEntity documentation #28647
- Document that Kotlin inline classes are not supported yet #28642
- Refine
@Required
Kotlin documentation to use annotation use site targets #28630 - Fix Kotlin example for
@ComponentScan
basePackages attribute #28628 - Kotlin examples for setter injection incorrectly use field injection #28596
- Fix expectations in MockMvc Kotlin documentation #28301
🔨 Dependency Upgrades
❤️ Contributors
We'd like to thank all the contributors who worked on this release!