SpringBoot关于SpringMVC组件源码的学习

本文记录关于SpringBoot关于MVC模块的自动配置加载学习
照旧,我们打开spring.factories,查看自动配置类,找到对应的WebMvcAutoConfiguration

点进去进行查看。
可以看到他的头文件

@Configuration
@ConditionalOnWebApplication(
    type = Type.SERVLET
)
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})

这里查看@AutoConfigureAfter的第一个类,也就是我们平时web.xml中的“<servlet>”
SpringBoot把以前我们使用的xml,都写成了类的形式,servlet也不例外,打开这个类,找到dispatcherServletRegistration

@Bean(
            name = {"dispatcherServletRegistration"}
        )
        @ConditionalOnBean(
            value = {DispatcherServlet.class},
            name = {"dispatcherServlet"}
        )
        public DispatcherServletRegistrationBean dispatcherServletRegistration(DispatcherServlet dispatcherServlet) {
            DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean(dispatcherServlet, this.webMvcProperties.getServlet().getPath());
            registration.setName("dispatcherServlet");
            registration.setLoadOnStartup(this.webMvcProperties.getServlet().getLoadOnStartup());
            if (this.multipartConfig != null) {
                registration.setMultipartConfig(this.multipartConfig);
            }

            return registration;
        }

点开构造返回值的getpath,可以看到

@ConfigurationProperties(
    prefix = "spring.mvc"
)

这个配置application的前缀,我们往下翻,找到对应的spring.mvc.servlet.path

k在这里插入图片描述
可以看到默认值为/,与我们以前配置的servlet的在这里插入图片描述
相符合。还可以看到配置的视图解析器默认是没有值的
在这里插入图片描述
回到WebMvcAutoConfiguration,可以看到,有一个默认的视图解析器defaultViewResolver
在这里插入图片描述
还有一个视图解析器收集器ContentNegotiatingViewResolver
在这里插入图片描述
他会在系统启动的时候收集所有视图解析器,我们可以选择我们想用的视图解析器,点进去看,可以看到他有一个视图解析器的集合
在这里插入图片描述
下面有一个方法,对其进行add,应该就是增加视图解析器进入list的方法了
在这里插入图片描述
打上断点运行,可以看到有4个视图解析器
在这里插入图片描述
有点难。。看了视频,后面的完全懵逼。。。也就到servlet的能明白。。晕

但是查spring.factories可以查到自动配置的类,翻一下挺多的,不得不佩服写SpringBoot的人,表面弱智背里超人啊。。。
附上学习链接:https://ke.qq.com/webcourse/index.html#cid=179440&term_id=100211540&taid=2691162083343600&vid=o1428jaocu7
有更好的资源欢迎留言!万分感激!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值