定义拦截器

    1. public class MyInterceptor implements HandlerInterceptor {// 实现HandlerInterceptor接口
    2. protected static Logger logger = LoggerFactory.getLogger(HandlerInterceptor.class);
    3. /**
    4. * 访问控制器方法前执行
    5. */
    6. @Override
    7. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    8. throws Exception {
    9. logger.info("{}--preHandle:{}", LocalDateTime.now(), request.getRequestURL());
    10. return true;
    11. }
    12. /**
    13. * 访问控制器方法后执行
    14. */
    15. @Override
    16. public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
    17. ModelAndView modelAndView) throws Exception {
    18. logger.info("{}--postHandle:{}", LocalDateTime.now(), request.getRequestURL());
    19. }
    20. /**
    21. * postHandle方法执行完成后执行,一般用于释放资源
    22. */
    23. @Override
    24. public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
    25. throws Exception {
    26. logger.info("{}--afterCompletion:{}", LocalDateTime.now(), request.getRequestURL());
    27. }
    28. }

    配置拦截器

    1. @Configuration
    2. public class WebConfig implements WebMvcConfigurer {
    3. @Override
    4. public void addInterceptors(InterceptorRegistry registry) {
    5. // 对所有访问路径,都通过MyInterceptor类型的拦截器进行拦截
    6. registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
    7. }
    8. }