本文的环境基础:springboot web模块,aop模块,rest风格
本文的测试功能:对UserController进行拦截,输出每个方法执行的耗时
spring boot过滤器:过滤器只能取到request,response等信息,不能获取正在过滤的类的信息和方法的信息,不能获取请求参数
过滤器的实现有两种方式:
通过@Component注解,直接将filter交给spring管理,但是这种方式时过滤所有请求,我没有找到配置过滤路径的地方,欢迎朋友多多指教
1 @Component2 public class TimeFilter implementsFilter {3 @Override4 public void init(FilterConfig filterConfig) throwsServletException {5 System.out.println("TimeFilter : init");6 }7
8 @Override9 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throwsIOException, ServletException {10 System.out.println("TimeFilter : doFilter start");11
12 Long startTime =System.currentTimeMillis();13
14 filterChain.doFilter(servletRequest, servletResponse);15
16 Sys