首页 > Web开发 > 详细

WebMvcConfigurationSupport 和WebMvcConfigurationAdapter的区别

时间:2019-05-28 17:21:47      阅读:1158      评论:0      收藏:0      [点我收藏+]

今天看项目的代码的时候发现了一个有趣的事情,一个为了解决跨域问题的配置类

//@Configuration
public class CorsConfigure extends WebMvcConfigurationSupport

我发现继承的是
WebMvcConfigurationSupport,然后我看网上对于跨域问题的解决配置类中继承的都是WebMvcConfigurationAdapter  

我就觉得很奇怪,就去百度了一下他们的差别,现在记录一下

1.@EnableWebMvc+extends WebMvcConfigurationAdapter,在扩展的类中重写父类的方法即可,这种方式会屏蔽springboot的@EnableAutoConfiguration中的设置
2.extends WebMvcConfigurationSupport,在扩展的类中重写父类的方法即可,这种方式会屏蔽springboot的@EnableAutoConfiguration中的设置
3.extends WebMvcConfigurationAdapter,在扩展的类中重写父类的方法即可,这种方式依旧使用springboot的@EnableAutoConfiguration中的设置

 

至于为什么会屏蔽@EnableAutoConfiguration的设置,这要看@EnableAutoConfiguration到底做了什么,springMvc在boot完成自动装配相关的类:WebMvcAutoConfiguration

@Configuration
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,
ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration 

可以看到一旦boot中一旦出现WebMvcConfigurationSupport类的话,这个自动装配的类就不会出现了,这就是上述1,2表述的原因

另外现在WebMvcConfigurationAdapter已经被WebMvcConfigurer代替

 

至于3,比较复杂,想要深入了解可以参考原文

 

 

 


参考
原文:https://blog.csdn.net/lqadam/article/details/80637335

 

 

 




WebMvcConfigurationSupport 和WebMvcConfigurationAdapter的区别

原文:https://www.cnblogs.com/changeCode/p/10938640.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!