@Configuration public class WebMvcBoot extends WebMvcConfigurerAdapter { @Resource public HandlerInterceptor handlerInterceptor; @Resource private MyWebRequestInterceptor myWebRequestInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { super.addInterceptors(registry); registry.addInterceptor(handlerInterceptor); registry.addWebRequestInterceptor(myWebRequestInterceptor); } }
import org.springframework.stereotype.Component; import org.springframework.ui.ModelMap; import org.springframework.web.context.request.WebRequest; import org.springframework.web.context.request.WebRequestInterceptor; @Component public class MyWebRequestInterceptor implements WebRequestInterceptor { @Override public void preHandle(WebRequest request) throws Exception { } @Override public void postHandle(WebRequest request, ModelMap model) throws Exception { } @Override public void afterCompletion(WebRequest request, Exception ex) throws Exception { } }
package com.gy.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component public class HandlerInterceptor extends HandlerInterceptorAdapter { @Autowired private SecurityDeal securityDeal; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //调用接口前调用 return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { //报异常时不执行,preHandle返回false不执行,反之执行 // System.out.println("postHandle"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // System.out.println("afterCompletion"); } @Override public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // System.out.println("afterConcurrentHandlingStarted"); } }