org.springframework.web.reactive.config

## Interface WebFluxConfigurer

- All Known Implementing Classes:
    WebFluxConfigurerComposite

      public interface WebFluxConfigurer

  Defines callback methods to customize the configuration for WebFlux applications enabled via `@EnableWebFlux`.

  `@EnableWebFlux`-annotated configuration classes may implement this interface to be called back and given a chance to customize the default configuration. Consider implementing this interface and overriding the relevant methods for your needs.

  Since:
    5.0
  Author:
    Brian Clozel, Rossen Stoyanchev
  See Also:
    `WebFluxConfigurationSupport`, `DelegatingWebFluxConfiguration`

- - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default void` | `addCorsMappings(CorsRegistry registry)` Configure "global" cross-origin request processing.
    `default void` | `addFormatters(FormatterRegistry registry)` Add custom `Converters` and `Formatters` for performing type conversion and formatting of annotated controller method arguments.
    `default void` | `addResourceHandlers(ResourceHandlerRegistry registry)` Add resource handlers for serving static resources.
    `default void` | `configureArgumentResolvers(ArgumentResolverConfigurer configurer)` Configure resolvers for custom `@RequestMapping` method arguments.
    `default void` | `configureContentTypeResolver(RequestedContentTypeResolverBuilder builder)` Configure how the content type requested for the response is resolved when handling requests with annotated controllers.
    `default void` | `configureHttpMessageCodecs(ServerCodecConfigurer configurer)` Configure the HTTP message readers and writers for reading from the request body and for writing to the response body in annotated controllers and functional endpoints.
    `default void` | `configurePathMatching(PathMatchConfigurer configurer)` Configure path matching options.
    `default void` | `configureViewResolvers(ViewResolverRegistry registry)` Configure view resolution for rendering responses with a view and a model, where the view is typically an HTML template but could also be based on an HTTP message writer (e.g.
    `default MessageCodesResolver` | `getMessageCodesResolver()` Provide a custom `MessageCodesResolver` to use for data binding in annotated controller method arguments instead of the one created by default in `DataBinder`.
    `default Validator` | `getValidator()` Provide a custom `Validator`.
    `default WebSocketService` | `getWebSocketService()` Provide the `WebSocketService` to create `WebSocketHandlerAdapter` with.

- - ### Method Detail

    - #### configureContentTypeResolver

          default void configureContentTypeResolver(RequestedContentTypeResolverBuilder builder)

      Configure how the content type requested for the response is resolved when handling requests with annotated controllers.
      Parameters:
        `builder` - for configuring the resolvers to use

    - #### addCorsMappings

          default void addCorsMappings(CorsRegistry registry)

      Configure "global" cross-origin request processing. The configured CORS mappings apply to annotated controllers, functional endpoints, and static resources.

      Annotated controllers can further declare more fine-grained config via `@CrossOrigin`. In such cases "global" CORS configuration declared here is `combined` with local CORS configuration defined on a controller method.

      See Also:
        `CorsRegistry`, `CorsConfiguration.combine(CorsConfiguration)`

    - #### configurePathMatching

          default void configurePathMatching(PathMatchConfigurer configurer)

      Configure path matching options.

      The configured path matching options will be used for mapping to annotated controllers and also `static resources`.

      Parameters:
        `configurer` - the `PathMatchConfigurer` instance

    - #### addResourceHandlers

          default void addResourceHandlers(ResourceHandlerRegistry registry)

      Add resource handlers for serving static resources.
      See Also:
        `ResourceHandlerRegistry`

    - #### configureArgumentResolvers

          default void configureArgumentResolvers(ArgumentResolverConfigurer configurer)

      Configure resolvers for custom `@RequestMapping` method arguments.
      Parameters:
        `configurer` - to configurer to use

    - #### configureHttpMessageCodecs

          default void configureHttpMessageCodecs(ServerCodecConfigurer configurer)

      Configure the HTTP message readers and writers for reading from the request body and for writing to the response body in annotated controllers and functional endpoints.

      By default, all built-in readers and writers are configured as long as the corresponding 3rd party libraries such Jackson JSON, JAXB2, and others are present on the classpath.

      Parameters:
        `configurer` - the configurer to customize readers and writers

    - #### addFormatters

          default void addFormatters(FormatterRegistry registry)

      Add custom `Converters` and `Formatters` for performing type conversion and formatting of annotated controller method arguments.

    - #### getValidator

          @Nullable
          default Validator getValidator()

      Provide a custom `Validator`.

      By default a validator for standard bean validation is created if bean validation API is present on the classpath.

      The configured validator is used for validating annotated controller method arguments.

    - #### getMessageCodesResolver

          @Nullable
          default MessageCodesResolver getMessageCodesResolver()

      Provide a custom `MessageCodesResolver` to use for data binding in annotated controller method arguments instead of the one created by default in `DataBinder`.

    - #### getWebSocketService

          @Nullable
          default WebSocketService getWebSocketService()

      Provide the `WebSocketService` to create `WebSocketHandlerAdapter` with. This can be used to configure server-specific properties through the `RequestUpgradeStrategy`.
      Since:
        5.3

    - #### configureViewResolvers

          default void configureViewResolvers(ViewResolverRegistry registry)

      Configure view resolution for rendering responses with a view and a model, where the view is typically an HTML template but could also be based on an HTTP message writer (e.g. JSON, XML).

      The configured view resolvers will be used for both annotated controllers and functional endpoints.