org.springframework.web.reactive.result.method.annotation

## Class ResponseBodyResultHandler

- java.lang.Object
- - org.springframework.web.reactive.result.HandlerResultHandlerSupport
  - - org.springframework.web.reactive.result.method.annotation.AbstractMessageWriterResultHandler
    - - org.springframework.web.reactive.result.method.annotation.ResponseBodyResultHandler

All Implemented Interfaces:
  org.springframework.core.Ordered, HandlerResultHandler

    public class ResponseBodyResultHandler
    extends AbstractMessageWriterResultHandler
    implements HandlerResultHandler

`HandlerResultHandler` that handles return values from methods annotated with `@ResponseBody` writing to the body of the request or response with an `HttpMessageWriter`.

By default the order for this result handler is set to 100. As it detects the presence of `@ResponseBody` it should be ordered after result handlers that look for a specific return type. Note however that this handler does recognize and explicitly ignores the `ResponseEntity` return type.

Since:
  5.0
Author:
  Rossen Stoyanchev, Stephane Maldini, Sebastien Deleuze, Arjen Poutsma

### Field Summary

### Fields inherited from class org.springframework.web.reactive.result.HandlerResultHandlerSupport

`logger`

### Fields inherited from interface org.springframework.core.Ordered

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

### Constructor Summary

Constructors
Constructor and Description
`ResponseBodyResultHandler(List<org.springframework.http.codec.HttpMessageWriter<?>> writers, RequestedContentTypeResolver resolver)` Basic constructor with a default `ReactiveAdapterRegistry`.
`ResponseBodyResultHandler(List<org.springframework.http.codec.HttpMessageWriter<?>> writers, RequestedContentTypeResolver resolver, org.springframework.core.ReactiveAdapterRegistry registry)` Constructor with an `ReactiveAdapterRegistry` instance.

### Method Summary

All Methods Instance Methods Concrete Methods
`reactor.core.publisher.Mono<Void>` `handleResult(org.springframework.web.server.ServerWebExchange exchange, HandlerResult result)` Process the given result modifying response headers and/or writing data to the response.
`boolean` `supports(HandlerResult result)` Whether this handler supports the given `HandlerResult`.

### Methods inherited from class org.springframework.web.reactive.result.method.annotation.AbstractMessageWriterResultHandler

`getMessageWriters, writeBody, writeBody`

### Methods inherited from class org.springframework.web.reactive.result.HandlerResultHandlerSupport

`getAdapter, getAdapterRegistry, getContentTypeResolver, getOrder, selectMediaType, setOrder`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ResponseBodyResultHandler

    public ResponseBodyResultHandler(List<org.springframework.http.codec.HttpMessageWriter<?>> writers,
                                     RequestedContentTypeResolver resolver)

Basic constructor with a default `ReactiveAdapterRegistry`.

Parameters:
  `writers` - the writers for serializing to the response body
  `resolver` - to determine the requested content type

#### ResponseBodyResultHandler

    public ResponseBodyResultHandler(List<org.springframework.http.codec.HttpMessageWriter<?>> writers,
                                     RequestedContentTypeResolver resolver,
                                     org.springframework.core.ReactiveAdapterRegistry registry)

Constructor with an `ReactiveAdapterRegistry` instance.

Parameters:
  `writers` - the writers for serializing to the response body
  `resolver` - to determine the requested content type
  `registry` - for adaptation to reactive types

### Method Detail

#### supports

    public boolean supports(HandlerResult result)

Description copied from interface: `HandlerResultHandler`
Whether this handler supports the given `HandlerResult`.

Specified by:
  `supports` in interface `HandlerResultHandler`
Parameters:
  `result` - the result object to check
Returns:
  whether or not this object can use the given result

#### handleResult

    public reactor.core.publisher.Mono<Void> handleResult(org.springframework.web.server.ServerWebExchange exchange,
                                                          HandlerResult result)

Description copied from interface: `HandlerResultHandler`
Process the given result modifying response headers and/or writing data to the response.

Specified by:
  `handleResult` in interface `HandlerResultHandler`
Parameters:
  `exchange` - current server exchange
  `result` - the result from the handling
Returns:
  `Mono<Void>` to indicate when request handling is complete.