⭐ New Features
- Kotlin extension for RestTemplate [SPR-15056] #19622
- Kotlin extension for Web function API [SPR-15054] #19620
- Kotlin extension for GenericApplicationContext with registerBean(KClass) variants [SPR-15048] #19614
- Provide a way to specify hints in the functional web API [SPR-15030] #19597
- Support
@Nullable
annotations as indicators for optional injection points [SPR-15028] #19595 - Add HttpHeaders getter and setter for Accept-Language [SPR-15024] #19591
- Provide a RequestDataValueProcessor (or equivalent) mechanism in Spring Web Reactive [SPR-15001] #19568
- Support for "request parameters" (query string + form data) in ServerWebExchange [SPR-15000] #19567
- Provide computeIfAbsent-like method on ObjectProvider [SPR-14980] #19546
- Make it easier to use WebFilter with Functional Web Framework [SPR-14979] #19545
- Add status code check to bodyTo[Mono|Flux] [SPR-14977] #19543
- Make signature of ReactiveHttpOutputMessage#writeAndFlushWith(...) more flexible [SPR-14952] #19519
- Support Kotlin nullable information for
@Autowired
and@Inject
[SPR-14951] #19518 - Buffering of output in Spring Web Reactive with Netty too aggressive [SPR-14943] #19510
- Support getting/writing the body as Flux in WebClient [SPR-14918] #19485
- Allow serving static files from a directory to the functional web framework [SPR-14913] #19480
- Automatically set the right content type in BodyInserters#fromResource() [SPR-14905] #19471
- ReactiveAdapter.Descriptor should have a more descriptive way of creating instances of it [SPR-14902] #19468
- Allow HTTP status exceptions to be easily thrown from Controllers [SPR-14895] #19461
- TaskScheduler interface should support java.time.Instant/Duration [SPR-14875] #19441
- Allow HandlerFunction to return a Mono [SPR-14870] #19436
- Add a functional way to register a bean [SPR-14832] #19398
- Align ISO timezone parsing in DateFormatter with Joda-Time / JSR-310 [SPR-14675] #19239
- Cache ASM metadata at the context level [SPR-14654] #19219
- Reactive WebClient SSE extractors [SPR-14539] #19107
- Add HttpHeaders getter and setter for Content-Language [SPR-14536] #19105
- Reactive HTTP response based RedirectView [SPR-14534] #19103
- Reactive equivalent for RequestContext and BindStatus [SPR-14533] #19102
- Reactive response URL-rewriting mechanism [SPR-14529] #19098
- Reactive WebSocket adapter layer [SPR-14527] #19096
- Support Kotlin nullable information in Spring MVC parameters [SPR-14165] #18737
🪲 Bug Fixes
- JsonObjectDecoder throws ArrayIndexOutOfBoundsException: -1 with valid input [SPR-15013] #19580
- Exception accessing static resources in Spring Web Reactive with Netty [SPR-14975] #19541
- NPE is thrown while writing the response [SPR-14941] #19508
- Make andRoute() a drop-in replacement for and(route()) [SPR-14904] #19470
- CssLinkResourceTransformer should not transform gzipped CSS files [SPR-14773] #19339