定义拦截器
public class MyInterceptor implements HandlerInterceptor {// 实现HandlerInterceptor接口
protected static Logger logger = LoggerFactory.getLogger(HandlerInterceptor.class);
/**
* 访问控制器方法前执行
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
logger.info("{}--preHandle:{}", LocalDateTime.now(), request.getRequestURL());
return true;
}
/**
* 访问控制器方法后执行
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
logger.info("{}--postHandle:{}", LocalDateTime.now(), request.getRequestURL());
}
/**
* postHandle方法执行完成后执行,一般用于释放资源
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
logger.info("{}--afterCompletion:{}", LocalDateTime.now(), request.getRequestURL());
}
}
配置拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 对所有访问路径,都通过MyInterceptor类型的拦截器进行拦截
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}
}