⭐ New Features
- Set BEST_MATCHING_HANDLER_ATTRIBUTE in WebFlux.fn [SPR-17367] #21900
- How does DeferredResult get the value after the timeout [SPR-17364] #21897
- Replace context by provider() in Kotlin bean DSL [SPR-17352] #21886
- ServerWebInputException is throw each time Http request with mandatory request parameters is handled. [SPR-17338] #21872
- MonoToListenableFutureAdapter.cancel problems [SPR-17336] #21870
- ClassUtils could use long form of Class.forName [SPR-17333] #21867
- HeaderResultMatchers susceptible to slight variations in the date format [SPR-17330] #21864
- BasicAuthorizationInterceptor should add its header conditionally [SPR-17326] #21860
- Quartz job bean can't have constructor with injected parameters [SPR-17323] #21857
- Sanity checks for HTTP range requests [SPR-17318] #21851
- Unnecessary sort in AbstractApplicationEventMulticaster [SPR-17307] #21840
- Support for removeHeader in MockHttpServletRequest [SPR-17295] #21828
- Improve WebFlux performance for header management [SPR-17250] #21783
- WebTestClient.bindToRouterFunction(...) with exception handler not working [SPR-17239] #21772
- Add autowiring support to SpringBeanJobFactory [SPR-14471] #19040
- Convenient programmatic bean retrieval with qualifiers [SPR-8891] #13532
🪲 Bug Fixes
- MethodValidationPostProcessor validates FactoryBean methods for which validation is not applicable [SPR-17374] #21907
- MockHttpServletRequest doesn't reset InputStream/Reader on setContent [SPR-17373] #21906
- "This feature requires ASM7" on JDK11 on nested classes [SPR-17371] #21904
- WebTestClient throws IllegalArgumentException for invalid Parameters [SPR-17363] #21896
- Comparators.nullsLow creates wrong kind of NullSafeComparator [SPR-17357] #21891
- BeanFactory.getBeanProvider stream does not include beans from parent context [SPR-17356] #21890
- MockAsyncContext not found. Did request wrapper not delegate startAsync? [SPR-17353] #21887
- Nested DeferredImportSelector are not detected properly anymore [SPR-17351] #21885
- AnnotationMetadata.getAnnotationAttributes inconsistency for empty array in ASM implementation [SPR-17347] #21881
- Integer overflow while uploading big files (> 2.1 GB) using webflux [SPR-17345] #21879
- SpringBeanContainer should use returned instance from BeanFactory after initializing [SPR-17332] #21866
- ApplicationListener is missing from Collection returned by getApplicationListeners() if it was added after the multicaster was initialised [SPR-17324] #21858
- MockCookie parsing fails if cookie does not include attributes [SPR-17321] #21854
- HTTP 404 for static resources with last modified = 0L (breaks Docker images build with Jib) [SPR-17320] #21853
- Required attribute 'RouterFunctions.request' is missing [SPR-17304] #21837
- java.lang.AbstractMethodError: org.apache.commons.logging.LogFactory.setAttribute(..) [SPR-17302] #21835
- MockHttpServletResponse doesn't propagate Content-Language response header [SPR-17284] #21817
- Cyclic bean methods cause IllegalArgumentException instead of BeanCurrentlyInCreationException [SPR-17358] #19778
📔 Documentation
- Misleading description in Autowired javadoc [SPR-17299] #21832