119
119
import org .springframework .web .servlet .resource .EncodedResourceResolver ;
120
120
import org .springframework .web .servlet .resource .ResourceHttpRequestHandler ;
121
121
import org .springframework .web .servlet .resource .ResourceResolver ;
122
+ import org .springframework .web .servlet .resource .ResourceUrlProvider ;
122
123
import org .springframework .web .servlet .resource .VersionResourceResolver ;
123
124
import org .springframework .web .servlet .view .BeanNameViewResolver ;
124
125
import org .springframework .web .servlet .view .ContentNegotiatingViewResolver ;
@@ -466,7 +467,7 @@ static final class FaviconRequestHandler extends ResourceHttpRequestHandler {
466
467
/**
467
468
* Configuration equivalent to {@code @EnableWebMvc}.
468
469
*/
469
- @ Configuration
470
+ @ Configuration ( proxyBeanMethods = false )
470
471
public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration {
471
472
472
473
private final WebMvcProperties mvcProperties ;
@@ -486,8 +487,12 @@ public EnableWebMvcConfiguration(
486
487
487
488
@ Bean
488
489
@ Override
489
- public RequestMappingHandlerAdapter requestMappingHandlerAdapter () {
490
- RequestMappingHandlerAdapter adapter = super .requestMappingHandlerAdapter ();
490
+ public RequestMappingHandlerAdapter requestMappingHandlerAdapter (
491
+ ContentNegotiationManager mvcContentNegotiationManager ,
492
+ FormattingConversionService mvcConversionService ,
493
+ Validator mvcValidator ) {
494
+ RequestMappingHandlerAdapter adapter = super .requestMappingHandlerAdapter (
495
+ mvcContentNegotiationManager , mvcConversionService , mvcValidator );
491
496
adapter .setIgnoreDefaultModelOnRedirect (this .mvcProperties == null
492
497
|| this .mvcProperties .isIgnoreDefaultModelOnRedirect ());
493
498
return adapter ;
@@ -505,9 +510,13 @@ protected RequestMappingHandlerAdapter createRequestMappingHandlerAdapter() {
505
510
@ Bean
506
511
@ Primary
507
512
@ Override
508
- public RequestMappingHandlerMapping requestMappingHandlerMapping () {
513
+ public RequestMappingHandlerMapping requestMappingHandlerMapping (
514
+ ContentNegotiationManager mvcContentNegotiationManager ,
515
+ FormattingConversionService mvcConversionService ,
516
+ ResourceUrlProvider mvcResourceUrlProvider ) {
509
517
// Must be @Primary for MvcUriComponentsBuilder to work
510
- return super .requestMappingHandlerMapping ();
518
+ return super .requestMappingHandlerMapping (mvcContentNegotiationManager ,
519
+ mvcConversionService , mvcResourceUrlProvider );
511
520
}
512
521
513
522
@ Bean
@@ -539,12 +548,15 @@ protected RequestMappingHandlerMapping createRequestMappingHandlerMapping() {
539
548
}
540
549
541
550
@ Override
542
- protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer () {
551
+ protected ConfigurableWebBindingInitializer getConfigurableWebBindingInitializer (
552
+ FormattingConversionService mvcConversionService ,
553
+ Validator mvcValidator ) {
543
554
try {
544
555
return this .beanFactory .getBean (ConfigurableWebBindingInitializer .class );
545
556
}
546
557
catch (NoSuchBeanDefinitionException ex ) {
547
- return super .getConfigurableWebBindingInitializer ();
558
+ return super .getConfigurableWebBindingInitializer (mvcConversionService ,
559
+ mvcValidator );
548
560
}
549
561
}
550
562
@@ -558,12 +570,9 @@ protected ExceptionHandlerExceptionResolver createExceptionHandlerExceptionResol
558
570
}
559
571
560
572
@ Override
561
- protected void configureHandlerExceptionResolvers (
573
+ protected void extendHandlerExceptionResolvers (
562
574
List <HandlerExceptionResolver > exceptionResolvers ) {
563
- super .configureHandlerExceptionResolvers (exceptionResolvers );
564
- if (exceptionResolvers .isEmpty ()) {
565
- addDefaultHandlerExceptionResolvers (exceptionResolvers );
566
- }
575
+ super .extendHandlerExceptionResolvers (exceptionResolvers );
567
576
if (this .mvcProperties .isLogResolvedException ()) {
568
577
for (HandlerExceptionResolver resolver : exceptionResolvers ) {
569
578
if (resolver instanceof AbstractHandlerExceptionResolver ) {
0 commit comments