Java

SpringBoot 注册没有@Compoent的第三方过滤器

勤劳的小蜜蜂 · 12月10日 · 2019年 ·

SpringBoot 中 自定义 filter 很容易,加上 @Compoent 注解继承 Filter 实现方法就可以了。

但是如果使用的是第三方的 filter ,类上没有加@Compoent 注解,而且你还没有办法修改它的代码,那怎么办呢?

你可能会想到在 xml 中将其注册为 bean,可是 SpringBoot 没有 xml 了啊。

那实际上就是将普通的类加到过滤器链上

例子:将类 TimeFilter 加到 Filter 的过滤器链上

@Configuration
public class WebConfig {

    @Bean
    public FilterRegistrationBean timeFilter() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        TimeFilter timeFilter = new TimeFilter();
        registrationBean.setFilter(timeFilter);
        List<String> urls = new ArrayList<>();
        urls.add("/*");
        registrationBean.setUrlPatterns(urls);
        return registrationBean;
    }
}

0 条回应