@Override protected MessageCodesResolver getMessageCodesResolver() { MessageCodesResolver messageCodesResolver = this.configurers.getMessageCodesResolver(); return (messageCodesResolver != null ? messageCodesResolver : super.getMessageCodesResolver()); }
/** * 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; }
/** * 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; }
@EnableWebFlux static class WebFluxConfig { }
@Override protected void addCorsMappings(CorsRegistry registry) { registry.addMapping("/cors-restricted") .allowedOrigins("http://foo") .allowedMethods("GET", "POST"); registry.addMapping("/cors"); registry.addMapping("/ambiguous") .allowedMethods("GET", "POST"); } }
@Test public void resourceHandlerMapping() throws Exception { delegatingConfig.setConfigurers(Collections.singletonList(webFluxConfigurer)); doAnswer(invocation -> { ResourceHandlerRegistry registry = invocation.getArgument(0); registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static"); return null; }).when(webFluxConfigurer).addResourceHandlers(any(ResourceHandlerRegistry.class)); delegatingConfig.resourceHandlerMapping(); verify(webFluxConfigurer).addResourceHandlers(any(ResourceHandlerRegistry.class)); verify(webFluxConfigurer).configurePathMatching(any(PathMatchConfigurer.class)); }
/** * 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; }
@Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/images/**").addResourceLocations("/images/"); } }
@Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.freeMarker(); }
@Override protected Validator getValidator() { Validator validator = this.configurers.getValidator(); return (validator != null ? validator : super.getValidator()); }
@Override public Validator getValidator() { return createSingleBean(WebFluxConfigurer::getValidator, Validator.class); }
@Override protected void configureViewResolvers(ViewResolverRegistry registry) { this.configurers.configureViewResolvers(registry); } }
@Override public void configurePathMatching(PathMatchConfigurer configurer) { this.configurers.configurePathMatching(configurer); }
@Override protected void configureContentTypeResolver(RequestedContentTypeResolverBuilder builder) { this.configurers.configureContentTypeResolver(builder); }
@Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { this.configurers.addResourceHandlers(registry); }
@Override protected void addFormatters(FormatterRegistry registry) { this.configurers.addFormatters(registry); }
@Override protected void addCorsMappings(CorsRegistry registry) { this.configurers.addCorsMappings(registry); }
@Override protected void configureArgumentResolvers(ArgumentResolverConfigurer configurer) { this.configurers.configureArgumentResolvers(configurer); }
@Override protected void configureHttpMessageCodecs(ServerCodecConfigurer configurer) { this.configurers.configureHttpMessageCodecs(configurer); }
@Override public MessageCodesResolver getMessageCodesResolver() { return createSingleBean(WebFluxConfigurer::getMessageCodesResolver, MessageCodesResolver.class); }