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回答

Jimin

2018-12-19

你好,你请求的接口是什么?是不是和filter拦截的请求规则不一样。每个filter在定义时都会指定当前filter拦截的请求,不是拦截所有。

0
3
大神系昵庶
回复
我埋藏的东西你别挖
我遇到这样的问题请问是怎么解决的??
2019-04-21
共3条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程