022 修改springmvc的默認配置
一 .概述
在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("/*"); } }; } }
那麽,現在我們的所有的請求都會被我們的攔截器攔截了.
022 修改springmvc的默認配置