在每個項目中,攔截器都是我們經常會去使用的東西,基本上任一一個項目都缺不了攔截器的使用。
如日志記錄、登錄驗證,session驗證等,都需要攔截器來攔截URL請求,那springboot中的攔截器是如何去使用的呢,我們一起試試。
首先,我們去創建一個名為LoginInterceptor的攔截器,來過濾請求,我們創建的攔截器要去實現HandlerInterceptor接口,然后定義我們的方法
public class LoginInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(LoginInterceptor.class); /** * 進入controller層之前攔截請求 * @param httpServletRequest * @param httpServletResponse * @param o * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { log.info("---------------------開始進入請求地址攔截----------------------------"); return true; } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { log.info("--------------處理請求完成后視圖渲染之前的處理操作---------------"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { log.info("---------------視圖渲染之后的操作-------------------------0"); } }
這里,我們不去寫過多的業務邏輯,只需要知道攔截器是否生效即可
接下來我們需要將LoginInterceptor攔截器添加到SpringBoot的配置中,讓SpringBoot項目有這么一個攔截器存在,我們新創建一個WebAppConfig,
將攔截器的配置以及攔截路徑配置好
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter{
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**");
}
}
這個方法將我們之前寫好的登錄攔截器添加到了配置中去,接下來,我們去發送請求,觀察控制台

發現請求確實被攔截器攔截成功了,然后我們就可以根據業務需要去在攔截器中寫我們想要的方法了
