拦截器入门案例
制作拦截器功能类
配置拦截器的执行位置
在 com.xxx.controller 下创建 interceptor 目录
package com.xxx.controller.interceptor;
@Component
public class ProjectInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle...");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle...");
}
@Override
public boolean afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion...");
}
}
SpringMvcSupport.java
package com.xxx.config;
@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {
@Autowired
private ProjectInterceptor projectInterceptor;
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandlers("/pages/**").addResourceLocations("/pages/");
}
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptors(projectInterceptor).addPathPatterns("/books");
}
}
SpringMvcConfig.java
package com.xxx.config;
@Configuration
@ComponentScan({"com.xxx.controller", "com.xxx.config"})
@EnableWebMvc
public class SpringMvcConfig {
}

SpringMvcConfig.java
@Configuration
@Component({"com.xxx.controller"})
@EnableWebMvc
public class SpringMvcConfig implements WebMvcConfigurer {
@Autowired
private ProjectInterceptor projectInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptors(projectInterceptor).addPathPatterns("/books", "/books/*");
}
}

