ViewResolver 实现了视图解析器接口的类,就看做是视图解析器
搜索ContentNegotiatingViewResolver,找到如下方法resolveViewName!找到对应的视图解析代码
从 getCandidateViews中看到它是把所有的视图解析器拿来,进行遍历循环
结论:ContentNegotiatingViewResolver 这个视图解析器就是用来组合所有的视图解析器的
可以看出它是从容器中去找视图解析器,我们也可以在容器中实现一个视图解析器!
容器中实现一个视图解析器
1、我们在主程序中去写一个视图解析器;
2、如何看我们自己写的视图解析器是否起了作用呢?
我们给 DispatcherServlet 中的 doDispatch方法 加个断点进行调试一下,因为所有的请求都会走到这个方法中!
3、我们启动我们的项目,然后随便访问一个页面,看一下Debug信息,找到this
4、找到视图解析器,我们看到我们自己定义的就在这里了;
所以说,我们如果想要使用diy定制的东西,我们只需要给容器中添加这个组件就好了,SpringBoot就会帮我们自动装配!
转换器和格式化器
找到格式化转换器:
点进去可以看到
如果配置了自己的格式化方式,就会注册到Bean中生效,我们可以在配置文件中配置日期格式化的规则:可以看到在我们的Properties文件中,我们可以进行自动配置它!
修改SpringBoot的默认配置
结论:我们要扩展SpringMVC,官方就推荐我们这么去使用,既保SpringBoot留所有的自动配置,也能用我们扩展的配置!
分析一下原理:
1、WebMvcAutoConfiguration 是 SpringMVC的自动配置类,里面有一个类WebMvcAutoConfigurationAdapter
2、这个类上有一个注解,在做其他自动配置时会导入:@Import(EnableWebMvcConfiguration.class)
3、我们点进EnableWebMvcConfiguration这个类看一下,它继承了一个父类:DelegatingWebMvcConfiguration
这个父类中有这样一段代码:
4、我们可以在这个类中去寻找一个我们刚才设置的viewController当做参考,发现它调用了一个
protected void addViewControllers(ViewControllerRegistry registry) {
this.configurers.addViewControllers(registry);
}
5、我们点进去看一下
public void addViewControllers(ViewControllerRegistry registry) {
Iterator var2 = this.delegates.iterator();
while(var2.hasNext()) {
// 将所有的WebMvcConfigurer相关配置来一起调用!包括我们自己配置的和Spring给我们配置的
WebMvcConfigurer delegate = (WebMvcConfigurer)var2.next();
delegate.addViewControllers(registry);
}
}
**结论:**所有的WebMvcConfiguration都会被作用,不止Spring自己的配置类,我们自己的配置类当然也会被调用
全面接管SpringMVC
全面接管即:SpringBoot对SpringMVC的自动配置不需要了,所有都是我们自己去配置!
只需在我们的配置类中要加一个@EnableWebMvc。
我们开发中,不推荐使用全面接管SpringMVC
1、这里看到它是导入了一个类,继续点进去看
2、它继承了一个父类 WebMvcConfigurationSupport
3、回顾一下Webmvc自动配置类
总结:@EnableWebMvc将WebMvcConfigurationSupport组件导入进来;
而导入的WebMvcConfigurationSupport只是SpringMVC最基本的功能!
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
ySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
[外链图片转存中…(img-Y9yweELn-1723265041731)]
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!