- Interceptor类
package cn.wolfcode.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DemoInterceptor implements HandlerInterceptor {
//前置拦截器
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//在访问控制器之前拦截
System.out.println("在访问控制器之前拦截");
return true;
}
//试图解析器
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//试图解析完拦截
}
//后置拦截器
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//访问完控制器之后拦截
System.out.println("访问完控制器之后拦截");
}
}
- SpringBoot配置
package cn.wolfcode;
import cn.wolfcode.filterdemo.FilterDemo;
import cn.wolfcode.interceptor.DemoInterceptor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@SpringBootApplication
public class AppStart implements WebMvcConfigurer {
/**
* 配置过滤器
* @return
*/
@Bean
public FilterDemo filterDemo(){
return new FilterDemo();
}
/**
* 配置拦截器
* 配置类实现 WebMvcConfigurer接口
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册TestInterceptor拦截器
InterceptorRegistration registration = registry.addInterceptor(new DemoInterceptor());
registration.addPathPatterns("/**"); //所有路径都被拦截
registration.excludePathPatterns( //添加不拦截路径
);
}
public static void main(String[] args) {
SpringApplication.run(AppStart.class,args);
}
}