1
1
/*
2
- * Copyright 2002-2018 the original author or authors.
2
+ * Copyright 2002-2019 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -92,6 +92,10 @@ public class WebFluxConfigurationSupport implements ApplicationContextAware {
92
92
@ Nullable
93
93
private ApplicationContext applicationContext ;
94
94
95
+ @ Nullable
96
+ public final ApplicationContext getApplicationContext () {
97
+ return this .applicationContext ;
98
+ }
95
99
96
100
@ Override
97
101
public void setApplicationContext (@ Nullable ApplicationContext applicationContext ) {
@@ -103,12 +107,6 @@ public void setApplicationContext(@Nullable ApplicationContext applicationContex
103
107
}
104
108
}
105
109
106
- @ Nullable
107
- public final ApplicationContext getApplicationContext () {
108
- return this .applicationContext ;
109
- }
110
-
111
-
112
110
@ Bean
113
111
public DispatcherHandler webHandler () {
114
112
return new DispatcherHandler ();
@@ -121,10 +119,11 @@ public WebExceptionHandler responseStatusExceptionHandler() {
121
119
}
122
120
123
121
@ Bean
124
- public RequestMappingHandlerMapping requestMappingHandlerMapping () {
122
+ public RequestMappingHandlerMapping requestMappingHandlerMapping (
123
+ RequestedContentTypeResolver webFluxContentTypeResolver ) {
125
124
RequestMappingHandlerMapping mapping = createRequestMappingHandlerMapping ();
126
125
mapping .setOrder (0 );
127
- mapping .setContentTypeResolver (webFluxContentTypeResolver () );
126
+ mapping .setContentTypeResolver (webFluxContentTypeResolver );
128
127
mapping .setCorsConfigurations (getCorsConfigurations ());
129
128
130
129
PathMatchConfigurer configurer = getPathMatchConfigurer ();
@@ -203,10 +202,10 @@ public void configurePathMatching(PathMatchConfigurer configurer) {
203
202
}
204
203
205
204
@ Bean
206
- public RouterFunctionMapping routerFunctionMapping () {
205
+ public RouterFunctionMapping routerFunctionMapping (ServerCodecConfigurer serverCodecConfigurer ) {
207
206
RouterFunctionMapping mapping = createRouterFunctionMapping ();
208
207
mapping .setOrder (-1 ); // go before RequestMappingHandlerMapping
209
- mapping .setMessageReaders (serverCodecConfigurer () .getReaders ());
208
+ mapping .setMessageReaders (serverCodecConfigurer .getReaders ());
210
209
mapping .setCorsConfigurations (getCorsConfigurations ());
211
210
212
211
return mapping ;
@@ -225,13 +224,13 @@ protected RouterFunctionMapping createRouterFunctionMapping() {
225
224
* {@link #addResourceHandlers}.
226
225
*/
227
226
@ Bean
228
- public HandlerMapping resourceHandlerMapping () {
227
+ public HandlerMapping resourceHandlerMapping (ResourceUrlProvider resourceUrlProvider ) {
229
228
ResourceLoader resourceLoader = this .applicationContext ;
230
229
if (resourceLoader == null ) {
231
230
resourceLoader = new DefaultResourceLoader ();
232
231
}
233
232
ResourceHandlerRegistry registry = new ResourceHandlerRegistry (resourceLoader );
234
- registry .setResourceUrlProvider (resourceUrlProvider () );
233
+ registry .setResourceUrlProvider (resourceUrlProvider );
235
234
addResourceHandlers (registry );
236
235
237
236
AbstractHandlerMapping handlerMapping = registry .getHandlerMapping ();
@@ -265,11 +264,15 @@ protected void addResourceHandlers(ResourceHandlerRegistry registry) {
265
264
}
266
265
267
266
@ Bean
268
- public RequestMappingHandlerAdapter requestMappingHandlerAdapter () {
267
+ public RequestMappingHandlerAdapter requestMappingHandlerAdapter (
268
+ ReactiveAdapterRegistry webFluxAdapterRegistry ,
269
+ ServerCodecConfigurer serverCodecConfigurer ,
270
+ FormattingConversionService webFluxConversionService ,
271
+ Validator webfluxValidator ) {
269
272
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 );
273
276
274
277
ArgumentResolverConfigurer configurer = new ArgumentResolverConfigurer ();
275
278
configureArgumentResolvers (configurer );
@@ -325,10 +328,12 @@ protected void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
325
328
* Return the {@link ConfigurableWebBindingInitializer} to use for
326
329
* initializing all {@link WebDataBinder} instances.
327
330
*/
328
- protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer () {
331
+ protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer (
332
+ FormattingConversionService webFluxConversionService ,
333
+ Validator webFluxValidator ) {
329
334
ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer ();
330
- initializer .setConversionService (webFluxConversionService () );
331
- initializer .setValidator (webFluxValidator () );
335
+ initializer .setConversionService (webFluxConversionService );
336
+ initializer .setValidator (webFluxValidator );
332
337
MessageCodesResolver messageCodesResolver = getMessageCodesResolver ();
333
338
if (messageCodesResolver != null ) {
334
339
initializer .setMessageCodesResolver (messageCodesResolver );
@@ -420,33 +425,42 @@ public SimpleHandlerAdapter simpleHandlerAdapter() {
420
425
}
421
426
422
427
@ 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 );
426
434
}
427
435
428
436
@ 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 );
432
443
}
433
444
434
445
@ Bean
435
- public ViewResolutionResultHandler viewResolutionResultHandler () {
446
+ public ViewResolutionResultHandler viewResolutionResultHandler (
447
+ ReactiveAdapterRegistry webFluxAdapterRegistry ,
448
+ RequestedContentTypeResolver webFluxContentTypeResolver ) {
436
449
ViewResolverRegistry registry = getViewResolverRegistry ();
437
450
List <ViewResolver > resolvers = registry .getViewResolvers ();
438
451
ViewResolutionResultHandler handler = new ViewResolutionResultHandler (
439
- resolvers , webFluxContentTypeResolver () , webFluxAdapterRegistry () );
452
+ resolvers , webFluxContentTypeResolver , webFluxAdapterRegistry );
440
453
handler .setDefaultViews (registry .getDefaultViews ());
441
454
handler .setOrder (registry .getOrder ());
442
455
return handler ;
443
456
}
444
457
445
458
@ Bean
446
- public ServerResponseResultHandler serverResponseResultHandler () {
459
+ public ServerResponseResultHandler serverResponseResultHandler (
460
+ ServerCodecConfigurer serverCodecConfigurer ) {
447
461
List <ViewResolver > resolvers = getViewResolverRegistry ().getViewResolvers ();
448
462
ServerResponseResultHandler handler = new ServerResponseResultHandler ();
449
- handler .setMessageWriters (serverCodecConfigurer () .getWriters ());
463
+ handler .setMessageWriters (serverCodecConfigurer .getWriters ());
450
464
handler .setViewResolvers (resolvers );
451
465
return handler ;
452
466
}
0 commit comments