All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.web.reactive.config.WebFluxConfigurer Maven / Gradle / Ivy

/*
 * Copyright 2002-2017 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.web.reactive.config;

import org.springframework.core.convert.converter.Converter;
import org.springframework.format.Formatter;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.codec.ServerCodecConfigurer;
import org.springframework.lang.Nullable;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.reactive.accept.RequestedContentTypeResolverBuilder;
import org.springframework.web.reactive.result.method.annotation.ArgumentResolverConfigurer;

/**
 * Defines callback methods to customize the configuration for WebFlux
 * applications enabled via {@link EnableWebFlux @EnableWebFlux}.
 *
 * 

{@code @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. * * @author Brian Clozel * @author Rossen Stoyanchev * @since 5.0 * @see WebFluxConfigurationSupport * @see DelegatingWebFluxConfiguration */ public interface WebFluxConfigurer { /** * Configure how the content type requested for the response is resolved * when handling reqests with annotated controllers. * @param builder for configuring the resolvers to use */ default void configureContentTypeResolver(RequestedContentTypeResolverBuilder builder) { } /** * Configure "global" cross origin request processing. *

The configured readers and writers will apply to all requests including * annotated controllers and functional endpoints. Annotated controllers can * further declare more fine-grained configuration via * {@link org.springframework.web.bind.annotation.CrossOrigin @CrossOrigin}. * @see CorsRegistry */ default void addCorsMappings(CorsRegistry registry) { } /** * Configure path matching options. *

The configured path matching options will be used for mapping to * annotated controllers and also * {@link #addResourceHandlers(ResourceHandlerRegistry) static resources}. * @param configurer the {@link PathMatchConfigurer} instance */ default void configurePathMatching(PathMatchConfigurer configurer) { } /** * Add resource handlers for serving static resources. * @see ResourceHandlerRegistry */ default void addResourceHandlers(ResourceHandlerRegistry registry) { } /** * Configure resolvers for custom {@code @RequestMapping} method arguments. * @param configurer to configurer to use */ default void configureArgumentResolvers(ArgumentResolverConfigurer configurer) { } /** * Configure custom HTTP message readers and writers or override built-in ones. *

The configured readers and writers will be used for both annotated * controllers and functional endpoints. * @param configurer the configurer to use */ default void configureHttpMessageCodecs(ServerCodecConfigurer configurer) { } /** * Add custom {@link Converter}s and {@link Formatter}s for performing type * conversion and formatting of annotated controller method arguments. */ default void addFormatters(FormatterRegistry registry) { } /** * Provide a custom {@link 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. */ @Nullable default Validator getValidator() { return null; } /** * Provide a custom {@link MessageCodesResolver} to use for data binding in * annotated controller method arguments instead of the one created by * default in {@link org.springframework.validation.DataBinder}. */ @Nullable default MessageCodesResolver getMessageCodesResolver() { return null; } /** * 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. */ default void configureViewResolvers(ViewResolverRegistry registry) { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy