11/*
2- * Copyright 2002-2018 the original author or authors.
2+ * Copyright 2002-2019 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
@@ -92,6 +92,10 @@ public class WebFluxConfigurationSupport implements ApplicationContextAware {
9292 @ Nullable
9393 private ApplicationContext applicationContext ;
9494
95+ @ Nullable
96+ public final ApplicationContext getApplicationContext () {
97+ return this .applicationContext ;
98+ }
9599
96100 @ Override
97101 public void setApplicationContext (@ Nullable ApplicationContext applicationContext ) {
@@ -103,12 +107,6 @@ public void setApplicationContext(@Nullable ApplicationContext applicationContex
103107 }
104108 }
105109
106- @ Nullable
107- public final ApplicationContext getApplicationContext () {
108- return this .applicationContext ;
109- }
110-
111-
112110 @ Bean
113111 public DispatcherHandler webHandler () {
114112 return new DispatcherHandler ();
@@ -121,10 +119,11 @@ public WebExceptionHandler responseStatusExceptionHandler() {
121119 }
122120
123121 @ Bean
124- public RequestMappingHandlerMapping requestMappingHandlerMapping () {
122+ public RequestMappingHandlerMapping requestMappingHandlerMapping (
123+ RequestedContentTypeResolver webFluxContentTypeResolver ) {
125124 RequestMappingHandlerMapping mapping = createRequestMappingHandlerMapping ();
126125 mapping .setOrder (0 );
127- mapping .setContentTypeResolver (webFluxContentTypeResolver () );
126+ mapping .setContentTypeResolver (webFluxContentTypeResolver );
128127 mapping .setCorsConfigurations (getCorsConfigurations ());
129128
130129 PathMatchConfigurer configurer = getPathMatchConfigurer ();
@@ -203,10 +202,10 @@ public void configurePathMatching(PathMatchConfigurer configurer) {
203202 }
204203
205204 @ Bean
206- public RouterFunctionMapping routerFunctionMapping () {
205+ public RouterFunctionMapping routerFunctionMapping (ServerCodecConfigurer serverCodecConfigurer ) {
207206 RouterFunctionMapping mapping = createRouterFunctionMapping ();
208207 mapping .setOrder (-1 ); // go before RequestMappingHandlerMapping
209- mapping .setMessageReaders (serverCodecConfigurer () .getReaders ());
208+ mapping .setMessageReaders (serverCodecConfigurer .getReaders ());
210209 mapping .setCorsConfigurations (getCorsConfigurations ());
211210
212211 return mapping ;
@@ -225,13 +224,13 @@ protected RouterFunctionMapping createRouterFunctionMapping() {
225224 * {@link #addResourceHandlers}.
226225 */
227226 @ Bean
228- public HandlerMapping resourceHandlerMapping () {
227+ public HandlerMapping resourceHandlerMapping (ResourceUrlProvider resourceUrlProvider ) {
229228 ResourceLoader resourceLoader = this .applicationContext ;
230229 if (resourceLoader == null ) {
231230 resourceLoader = new DefaultResourceLoader ();
232231 }
233232 ResourceHandlerRegistry registry = new ResourceHandlerRegistry (resourceLoader );
234- registry .setResourceUrlProvider (resourceUrlProvider () );
233+ registry .setResourceUrlProvider (resourceUrlProvider );
235234 addResourceHandlers (registry );
236235
237236 AbstractHandlerMapping handlerMapping = registry .getHandlerMapping ();
@@ -265,11 +264,15 @@ protected void addResourceHandlers(ResourceHandlerRegistry registry) {
265264 }
266265
267266 @ Bean
268- public RequestMappingHandlerAdapter requestMappingHandlerAdapter () {
267+ public RequestMappingHandlerAdapter requestMappingHandlerAdapter (
268+ ReactiveAdapterRegistry webFluxAdapterRegistry ,
269+ ServerCodecConfigurer serverCodecConfigurer ,
270+ FormattingConversionService webFluxConversionService ,
271+ Validator webfluxValidator ) {
269272 RequestMappingHandlerAdapter adapter = createRequestMappingHandlerAdapter ();
270- adapter .setMessageReaders (serverCodecConfigurer () .getReaders ());
271- adapter .setWebBindingInitializer (getConfigurableWebBindingInitializer ());
272- adapter .setReactiveAdapterRegistry (webFluxAdapterRegistry () );
273+ adapter .setMessageReaders (serverCodecConfigurer .getReaders ());
274+ adapter .setWebBindingInitializer (getConfigurableWebBindingInitializer (webFluxConversionService , webfluxValidator ));
275+ adapter .setReactiveAdapterRegistry (webFluxAdapterRegistry );
273276
274277 ArgumentResolverConfigurer configurer = new ArgumentResolverConfigurer ();
275278 configureArgumentResolvers (configurer );
@@ -325,10 +328,12 @@ protected void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
325328 * Return the {@link ConfigurableWebBindingInitializer} to use for
326329 * initializing all {@link WebDataBinder} instances.
327330 */
328- protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer () {
331+ protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer (
332+ FormattingConversionService webFluxConversionService ,
333+ Validator webFluxValidator ) {
329334 ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer ();
330- initializer .setConversionService (webFluxConversionService () );
331- initializer .setValidator (webFluxValidator () );
335+ initializer .setConversionService (webFluxConversionService );
336+ initializer .setValidator (webFluxValidator );
332337 MessageCodesResolver messageCodesResolver = getMessageCodesResolver ();
333338 if (messageCodesResolver != null ) {
334339 initializer .setMessageCodesResolver (messageCodesResolver );
@@ -420,33 +425,42 @@ public SimpleHandlerAdapter simpleHandlerAdapter() {
420425 }
421426
422427 @ Bean
423- public ResponseEntityResultHandler responseEntityResultHandler () {
424- return new ResponseEntityResultHandler (serverCodecConfigurer ().getWriters (),
425- webFluxContentTypeResolver (), webFluxAdapterRegistry ());
428+ public ResponseEntityResultHandler responseEntityResultHandler (
429+ ReactiveAdapterRegistry webFluxAdapterRegistry ,
430+ ServerCodecConfigurer serverCodecConfigurer ,
431+ RequestedContentTypeResolver webFluxContentTypeResolver ) {
432+ return new ResponseEntityResultHandler (serverCodecConfigurer .getWriters (),
433+ webFluxContentTypeResolver , webFluxAdapterRegistry );
426434 }
427435
428436 @ Bean
429- public ResponseBodyResultHandler responseBodyResultHandler () {
430- return new ResponseBodyResultHandler (serverCodecConfigurer ().getWriters (),
431- webFluxContentTypeResolver (), webFluxAdapterRegistry ());
437+ public ResponseBodyResultHandler responseBodyResultHandler (
438+ ReactiveAdapterRegistry webFluxAdapterRegistry ,
439+ ServerCodecConfigurer serverCodecConfigurer ,
440+ RequestedContentTypeResolver webFluxContentTypeResolver ) {
441+ return new ResponseBodyResultHandler (serverCodecConfigurer .getWriters (),
442+ webFluxContentTypeResolver , webFluxAdapterRegistry );
432443 }
433444
434445 @ Bean
435- public ViewResolutionResultHandler viewResolutionResultHandler () {
446+ public ViewResolutionResultHandler viewResolutionResultHandler (
447+ ReactiveAdapterRegistry webFluxAdapterRegistry ,
448+ RequestedContentTypeResolver webFluxContentTypeResolver ) {
436449 ViewResolverRegistry registry = getViewResolverRegistry ();
437450 List <ViewResolver > resolvers = registry .getViewResolvers ();
438451 ViewResolutionResultHandler handler = new ViewResolutionResultHandler (
439- resolvers , webFluxContentTypeResolver () , webFluxAdapterRegistry () );
452+ resolvers , webFluxContentTypeResolver , webFluxAdapterRegistry );
440453 handler .setDefaultViews (registry .getDefaultViews ());
441454 handler .setOrder (registry .getOrder ());
442455 return handler ;
443456 }
444457
445458 @ Bean
446- public ServerResponseResultHandler serverResponseResultHandler () {
459+ public ServerResponseResultHandler serverResponseResultHandler (
460+ ServerCodecConfigurer serverCodecConfigurer ) {
447461 List <ViewResolver > resolvers = getViewResolverRegistry ().getViewResolvers ();
448462 ServerResponseResultHandler handler = new ServerResponseResultHandler ();
449- handler .setMessageWriters (serverCodecConfigurer () .getWriters ());
463+ handler .setMessageWriters (serverCodecConfigurer .getWriters ());
450464 handler .setViewResolvers (resolvers );
451465 return handler ;
452466 }
0 commit comments