一 .概述
在springboot之中,springmvc的默认配置都是配置好的,但是在我们使用的过程之中需要对默认的配置进行修改.
本节,我们完成对springmvc的默认配置的修改,
[1]了解springmvc的自动配置原理
[2]修改springmvc的默认配置.
二 .springmvc的自动配置原理
springboot在默认情况进行对springmvc进行了配置,我们首先看一下自动配置类.
WebMvcAutoConfiguration在这个类之中帮助我们配置好了springmvc的基本配置类型.
[1]怎么添加视图解析器
我们自己可以向容器之中添加一个视图解析器就可以了.
[2]静态资源等文件,也是通过这个类进行配置的.
[3]参数类型转换器
比如日期格式化的内容就在application.yml文件之中进行配置.
如果我们想要配置一个自己的转换器,我们直接就在springboot之中自己配置一个就好了.
[4]HttpMessageConverter
消息转换器.我们自己给容器之中添加一个HttpMessageConverter就好了.
我们发现,springmvc的定制现在变得很简单了,我们需要什么,就向ioc容器之中添加就好了.
三 .如何配置拦截器等组件
在上面的自动配置之中,springmvc不可能帮助我们实现自动配置.
因此,springboot帮助我们提供了一个自动适配器,我们通过这个适配器来完成我们自己的配置就可以了.
我们只要向容器之中定制一个WebMvcConfigurerAdapter的类型组件.
下面演示一个拦截器的配置.
下面是我们自己定义一个拦截器对象
public class PreInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("请求被我们拦截了!!"); return true; } }
下面我们将这个配置配置到我们的springboot之中.
@Configuration public class MVCConfig { @Bean public WebMvcConfigurerAdapter mvcConfig() { // 通过这个方法,我们就能像容器之中添加很多的mvc的组件 return new WebMvcConfigurerAdapter() { // 添加我们自己的拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { // 添加一个拦截器对象 registry.addInterceptor(new PreInterceptor()) // 拦截所有的请求 .addPathPatterns("/*"); } }; } }
那么,现在我们的所有的请求都会被我们的拦截器拦截了.
原文地址:https://www.cnblogs.com/trekxu/p/9703864.html