Merge branch '6.1.x'

This commit is contained in:
Brian Clozel
2024-05-13 13:15:01 +02:00
2 changed files with 19 additions and 17 deletions

View File

@@ -4,9 +4,20 @@
[.small]#xref:web/webmvc/mvc-controller/ann-methods/return-types.adoc[See equivalent in the Servlet stack]#
The following table shows the supported controller method return values. Note that reactive
types from libraries such as Reactor, RxJava, xref:web-reactive.adoc#webflux-reactive-libraries[or other] are
types from libraries such as Reactor, RxJava, xref:web/webflux-reactive-libraries.adoc[or other] are
generally supported for all return values.
For return types like `Flux`, when multiple values are expected, elements are streamed as they come
and are not buffered. This is the default behavior, as keeping a potentially large amount of elements in memory
is not efficient. If the media type implies an infinite stream (for example,
`application/json+stream`), values are written and flushed individually. Otherwise,
values are written individually and the flushing happens separately.
NOTE: If an error happens while an element is encoded to JSON, the response might have been written to and committed already
and it is impossible at that point to render a proper error response.
In some cases, applications can choose to trade memory efficiency for better handling such errors by buffering elements and encoding them all at once.
Controllers can then return a `Flux<List<B>>`; Reactor provides a dedicated operator for that, `Flux#collectList()`.
[cols="1,2", options="header"]
|===
| Controller method return value | Description