首先我们点开springboot的官方文档
文档入口
往下翻看到这里
文档说如果我们希望在保存springboot-mvc原有的特征的情况下在想拓展自己的mvc 配置的话就在你的类中加上注解**@Configuration和实现WebMvcConfigurer**这个类,
之后再看第一行,文档说它包含了ContentNegotiatingViewResolver和BeanNameViewResolver这两个bean,我们先看ContentNegotiatingViewResolver,在idea中搜索这个类
这个类实现了ViewResolver接口,实现了这个接口的类称为视图解析器,我们点进去这个接口看看
这个接口中有一个方法,我们回到ContentNegotiatingViewResolver中看看springboot是怎么编写视图解析器的,以便我们自己对视图解析器进行一个重新编写
(Ctrl+F能搜索)
我们看到这两行代码,分别是获取所有的视图解析器和获取最好的视图解析器,我们点进去getCandidateViews进行查看
在这个里面我们可以看到,它首先遍历所有的视图解析器之后将这些视图解析器封装到candidateViews这个对象中然后返回出去。
现在我们就知道如何去编写一个自己的视图解析器了,
- 首先按照官方文档的描述,现在自己的类上面加上一个**@Configuration注解并且实现WebMvcConfigurer**这个类
- 然后只需要实现ViewResolver接口那么这个类就是一个视图解析器
- 最后注入到容器当中