Spring Boot 2.x HttpFilter里的doFilter方法不走
来源:5-3 线程封闭
我埋藏的东西你别挖
2018-12-19
public class HttpFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
log.info("do filter, {}, {}", Thread.currentThread().getId(), request.getServletPath());
RequestHolder.add(Thread.currentThread().getId());
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
@SpringBootApplication
public class ConcurrencyApplication implements WebMvcConfigurer {
@Resource
private HttpInterceptor httpInterceptor;
public static void main(String[] args) {
SpringApplication.run(ConcurrencyApplication.class, args);
}
/***
* 实现过滤器功能
* @return
*/
@Bean
public FilterRegistrationBean httpFilter(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new HttpFilter());
registrationBean.addUrlPatterns("/threadLocal/**");
return registrationBean;
}
看控制台,没有走都Filter方法,但是init方法却实现了
写回答
1回答
-
你好,你请求的接口是什么?是不是和filter拦截的请求规则不一样。每个filter在定义时都会指定当前filter拦截的请求,不是拦截所有。
032019-04-21
相似问题
6-2这个错误无法复现
回答 5
getandaddint方法问题(2)
回答 2