⭐ New Features
- Avoid temporary String creation in StringUtils.starts/endsWithIgnoreCase [SPR-16095] #20644
- Consider to add ability to modify the URI on ClientRequest.Builder [SPR-16093] #20642
- SchedulingConfigurer and JmsListenerConfigurer should respect
@Order
[SPR-16090] #20639 - Prevent WebSocket buffer overflow through application-level flow control [SPR-16089] #20638
- No way to signal that controller has handled the request in Webflux [SPR-16087] #20636
- Webflux handler method does not accept Map as parameter [SPR-16086] #20635
- Consider adding MockServerWebExchange.from(MockServerHttpRequest.BaseBuilder<?>) [SPR-16079] #20628
- MockMvc async does not re-use response instance on async dispatch [SPR-16067] #20616
- Annotations like
@Service
should add@AliasFor
for@Component
[SPR-16066] #20615 - Add convenient method to construct ParameterizedTypeReference from Type [SPR-16054] #20603
- Support JDK9 Flow.Publisher as an adaptable reactive type [SPR-16052] #20601
- Lower log level of ResponseStatusExceptionHandler [SPR-16049] #20598
- resourceHandlerMapping should be registered with shared HandlerInterceptor [SPR-16034] #20583
- ResourceWebHandler should throw ResponseStatusException when resources are not found [SPR-16023] #20572
- Controller fails to map for URLs patterns containing semicolons [SPR-16005] #20554
🪲 Bug Fixes
- Incorrectly identify bridged method on interface [SPR-16103] #20651
- WebSphereUowTransactionManager swallows original exception when commit fails for another reason [SPR-16102] #20650
- ContentDisposition class cannot parse quoted filename with ; [SPR-16091] #20640
@ModelAttribute
binding defined globally for particular attribute rather than per method invocation [SPR-16083] #20632- Checkbox/RadioButton incorrectly converts collections of enums with a custom converter [SPR-16082] #20631
- Returning non-standard HTTP status code causes exceptions on WebFlux [SPR-16073] #20622
- DataBufferUtils.read(ReadableByteChannel,...) may corrupt data when used with NettyDataBuffers [SPR-16070] #20619
- Empty NettyByteBuffer.asByteBuffer() returns ByteBuffer with zero capacity [SPR-16068] #20617
- BeanDefinitionValidationException when beans are null (NullBean) and initMethod is set [SPR-16063] #20612
- WebClient.mutate() impacts future .mutate() invocations [SPR-16059] #20608
- WebClient failed to write application/x-www-form-urlencoded [SPR-16055] #20604
- AbstractMessageSource does not properly interact with DelegatingMessageSource parent [SPR-16047] #20596
- sort BeanDefinitionRegistryPostProcessors added by other BeanDefinitionRegistryPostProcessors [SPR-16043] #20592
- CastClass exception when wiring Map of beans (NullBean instead of 'null' in the map) [SPR-16033] #20582
- Spring EL does not allow '\0' characters [SPR-16032] #20581
- CookieWebSessionIdResolver should set path to the context path + "/" [SPR-16030] #20579
- WebClient throws ClassCastException for bodyToMono(ParameterizedTypeReference) [SPR-16025] #20574
📔 Documentation
- Clarify Bean destroyMethod documentation [SPR-16078] #20627
- Improve documentation of lite configuration mode [SPR-16076] #20625
- Top-level "Language Support" reference section [SPR-16044] #20593
- Broken links to documentation section "Message Converters" [SPR-16024] #20573
- Docs for WebTestClient are pretty thin [SPR-16009] #20558
- Document HTTP/2 support in Spring 5 [SPR-15821] #20376
- Document Spring recommendations/restrictions for Java 9 module setups [SPR-14579] #19148