⭐ New Features
- Support autowiring by constructor in Kotlin bean DSL [SPR-16014] #20563
- WebFlux support for HttpHeaders controller method return value [SPR-16006] #20555
- Lambda-based consumption of an ObjectProvider's object when available [SPR-16001] #20550
- WebFlux support for Locale, TimeZone, ZoneId controller method arguments [SPR-15998] #20547
- WebFlux support for UriBuilder, UriComponentsBuilder controller method arguments [SPR-15997] #20546
- WebFlux support for HTTP HEAD [SPR-15994] #20543
- Revisit how WebClient disposes connection [SPR-15993] #20542
- WebSession provide invalidate method [SPR-15960] #20512
- Allow Consumer-style access to FluxExchangeResult within chain of calls [SPR-15959] #20511
- Introduce ForwardedHeaderFilter for WebFlux [SPR-15954] #20506
- Provide an API for introspection of handler mappings [SPR-15934] #20488
- Log message for a composed router function contains no information about the mappings or their handlers [SPR-15933] #20487
- ReactorServerHttpRequest.getUri() does not include scheme [SPR-15931] #20485
- Revisit handling of missing fields (without default values) for immutable data classes [SPR-15877] #20432
- Get a description of all registered routes in a RouterFunction [SPR-15711] #20268
- Stable module names for Spring Framework jars on JDK 9 module path [SPR-13716] #18289
🪲 Bug Fixes
- Delegating File downloads sends incomplete chunks [SPR-15949] #22194
- Fix behavior of ClientResponse bodyToMono and bodyToFlux with Void.class [SPR-16018] #20567
- AutowiredAnnotationBeanPostProcessor picks "wrong" constructor for Kotlin class [SPR-16012] #20561
- Support non-standard classes in Kotlin reflection discovery methods [SPR-15999] #20548
- WebFlux support for HTTP OPTIONS not working [SPR-15995] #20544
- DispatcherHandler no longer orders HandlerMapping beans [SPR-15991] #20541
- PathMatchingResourcePatternResolver provides duplicate resources when using classpath* prefix combined with ant-style [SPR-15989] #20539
- ProtobufHttpMessageConverter: JSON not written to response [SPR-15988] #20538
- RestTemplate doesn't consistently tolerate unknown HTTP status codes [SPR-15978] #20529
- "Parameter metadata not available for the given statement" SQL Exception after upgrading to Spring 5.0 RC4 [SPR-15977] #20528
- ChannelRegistration.setInterceptors is misnamed [SPR-15976] #20527
- AbstractJackson2Decoder breaks Custom Deserializers [SPR-15975] #20526
- DataBuffer Should Release Manually when Exception Thrown [SPR-15966] #20518
- JmsMessagingTemplate is not correctly configured [SPR-15965] #20517
- InMemoryWebSessionStore Leaks Memory [SPR-15963] #20515
- TaskExecutorRegistration.getTaskExecutor() overrides executor properties of a provided ThreadPoolTaskExecutor [SPR-15962] #20514
- spring-jcl does not include exported packages of java commons logging [SPR-15957] #20509
- HttpEntityMethodProcessor discards headers [SPR-15952] #20504
- WebClient: DELETE request should not send transfer-encoding: chunked header [SPR-15947] #20500
- WebClient doesn't send error signal for error responses [SPR-15946] #20499
- only one MultipartFile object populated when using an java.util.Optional MutipartFile array or list
@RequestParam
[SPR-15919] #20473 - java.util.Optional MultipartFile[]
@RequestParam
argument is null in multipart/form-data POST [SPR-15918] #20472 - Request params Optional<List and List are inconsistent [SPR-15676] #20235