Spring Boot 建立並註冊 攔截器Interceptor
阿新 • • 發佈:2020-08-05
在Spring的HTTP請求處理鏈上,攔截器是過濾器鏈之後的元件
使用一個攔截器的過程分為建立攔截器實現類和註冊攔截器
建立攔截器實現類
@Slf4j public class AppInterceptor implements HandlerInterceptor { /** * 請求進入過濾起之後,進入處理之前 * @param request * @param response * @param handler * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info("攔截 preHandle"); return true; } /** * 請求處理完成之後,檢視層渲染之前 * @param request * @param response * @param handler * @param modelAndView * @throws Exception */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { log.info("攔截 postHandle"); } /** * 檢視渲染完成之後 * @param request * @param response * @param handler * @param ex * @throws Exception */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { log.info("攔截 afterCompletion"); } }
建立配置類並註冊攔截器
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AppInterceptor()).addPathPatterns("/**");
}
}
訪問測試介面GET /
可以發現控制檯輸出三條日誌
攔截 preHandle 攔截 postHandle 攔截 afterCompletion