随记:WebMvcConfigurationSupport 和WebMvcConfigurer 的区别
WebMvcConfigurationSupport (抽象类)
他是一个完整的 MVC 配置基类,他会禁用所有自动配置。默认静态资源映射也没有了。默认消息转换器(json、xml)也没有了。错误处理页默认的error也没有了。
WebMvcConfigurer (接口)
他是会保留默认自动配置(推荐),上面的这些内容都会有默认值。
使用场景:日常业务开发:加拦截器、CORS、转换器等
他是怎么实现的呢,它这个下面有一个实现类WebMvcConfigurerComposite,他会把所有实现了WebMvcConfigurer接口的类注册进去,有点类似这个注册器模式,然后就可以使用了。
这里就会把一些默认的注册进来。 WebMvcAutoConfiguration的自动装配类就会装配。要是继承了WebMvcConfigurationSupport就不会让WebMvcAutoConfiguration类去自动装配WebMvcConfigurationSupport类了。有一个DelegatingWebMvcConfiguration实现了WebMvcConfigurationSupport类,WebMvcAutoConfiguration自动装配的时候就是装配的这个子类。