/** * Return a {@link FormattingConversionService} for use with annotated controllers. * <p>See {@link #addFormatters} as an alternative to overriding this method. */ @Bean public FormattingConversionService webFluxConversionService() { FormattingConversionService service = new DefaultFormattingConversionService(); addFormatters(service); return service; }
@Bean public RequestMappingHandlerAdapter requestMappingHandlerAdapter() { RequestMappingHandlerAdapter adapter = createRequestMappingHandlerAdapter(); adapter.setMessageReaders(serverCodecConfigurer().getReaders()); adapter.setWebBindingInitializer(getConfigurableWebBindingInitializer()); adapter.setReactiveAdapterRegistry(webFluxAdapterRegistry()); ArgumentResolverConfigurer configurer = new ArgumentResolverConfigurer(); configureArgumentResolvers(configurer); adapter.setArgumentResolverConfigurer(configurer); return adapter; }
/** * Return the configurer for HTTP message readers and writers. * <p>Use {@link #configureHttpMessageCodecs(ServerCodecConfigurer)} to * configure the readers and writers. */ @Bean public ServerCodecConfigurer serverCodecConfigurer() { ServerCodecConfigurer serverCodecConfigurer = ServerCodecConfigurer.create(); configureHttpMessageCodecs(serverCodecConfigurer); return serverCodecConfigurer; }
registry.setResourceUrlProvider(resourceUrlProvider()); addResourceHandlers(registry); PathMatchConfigurer configurer = getPathMatchConfigurer(); Boolean useTrailingSlashMatch = configurer.isUseTrailingSlashMatch(); Boolean useCaseSensitiveMatch = configurer.isUseCaseSensitiveMatch();
@Bean public LocaleContextResolver localeContextResolver() { return createLocaleContextResolver(); }
/** * Callback for building the {@link ViewResolverRegistry}. This method is final, * use {@link #configureViewResolvers} to customize view resolvers. */ protected final ViewResolverRegistry getViewResolverRegistry() { if (this.viewResolverRegistry == null) { this.viewResolverRegistry = new ViewResolverRegistry(this.applicationContext); configureViewResolvers(this.viewResolverRegistry); } return this.viewResolverRegistry; }
/** * Callback for building the {@link PathMatchConfigurer}. This method is * final, use {@link #configurePathMatching} to customize path matching. */ protected final PathMatchConfigurer getPathMatchConfigurer() { if (this.pathMatchConfigurer == null) { this.pathMatchConfigurer = new PathMatchConfigurer(); configurePathMatching(this.pathMatchConfigurer); } return this.pathMatchConfigurer; }
@Bean public RequestedContentTypeResolver webFluxContentTypeResolver() { RequestedContentTypeResolverBuilder builder = new RequestedContentTypeResolverBuilder(); configureContentTypeResolver(builder); return builder.build(); }
/** * Callback for building the global CORS configuration. This method is final. * Use {@link #addCorsMappings(CorsRegistry)} to customize the CORS conifg. */ protected final Map<String, CorsConfiguration> getCorsConfigurations() { if (this.corsConfigurations == null) { CorsRegistry registry = new CorsRegistry(); addCorsMappings(registry); this.corsConfigurations = registry.getCorsConfigurations(); } return this.corsConfigurations; }