栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMvc 源码分析 (@EnableWebMvc + WebMvcConfigurer接口的原理) (十五)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMvc 源码分析 (@EnableWebMvc + WebMvcConfigurer接口的原理) (十五)

文章目录
      • 1.回顾
      • 2.@EnableWebMvc + WebMvcConfigurer接口的使用原理
      • 3.总结

1.回顾

根据之前的文章, 之前自定义的组件放入了容器中, 但是DispatcherServlet会使用自定义的组件而放弃了默认组件, 导致很多功能都失效了。

所以@EnableWebMvc + WebMvcConfigurer就是解决这个问题的

@ComponentScan(value = "com.atguigu", includeFilters = {
        @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Controller.class})
}, useDefaultFilters = false)
@EnableWebMvc// 开启注解驱动
public class WebAppConfig implements WebMvcConfigurer {

    // 视图控制器
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
    }
}
2.@EnableWebMvc + WebMvcConfigurer接口的使用原理

@EnableWebMvc会给容器导入9大组件, 而且留了个入口WebMvcConfigurer可以定制化

添加链接描述SpringBoot 源码分析 (@Enablexxx注解编程模型分析) (五)

由之前的文章SpringBoot的注解@EnabelXxx 导入的是3种类型

而这种是XxxConfiguration


拿到容器中所有的WebMvcConfigurer


下面的方法都是通过上面从容器中拿到的WebMvcConfigurer功能定制调用的。

因为引入了XxxConfiguration继承了XxxSupport.

所以会引入XxxSuport


这个父类会自己引入自己的9大组件, 并且会留一个接口给子类引入

3.总结

通过以上的原理讲解, 可以得到@EnableWebMvc + WebMvcConfigurer的功能不仅可以自己使用自己的9大组件, 也可留一个接口给自定义。

相当于扩展了自己的功能。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024021.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号