基于 FilterRegistrationBean

 
//public class IntegralFilter implements Filter { ... }
 
 @Bean
public class FilterConfig {  
	@Autowired  
	private UrlIntegralsConfigurationService urlIntegralsConfigurationService;  
	// Filter代码类  
	@Bean  
	public IntegralFilter integralFilter() {  
		IntegralFilter integralFilter = new IntegralFilter();  
		integralFilter.init(urlIntegralsConfigurationService );  
		return integralFilter;  
	}  
	  
	@Bean  
	public FilterRegistrationBean getFilterRegistrationBean(IntegralFilter integralFilter ) {  
		FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();  
		filterRegistrationBean.setFilter(integralFilter);  
		filterRegistrationBean.setOrder(Ordered.LOWEST_PRECEDENCE);  
		filterRegistrationBean.addUrlPatterns("/api/*");  
		filterRegistrationBean.setName("IntegralFilter");  
		return filterRegistrationBean;  
	}  
}

基于 @WebFilter

在Spring Boot 里配置 Servlet 原生过滤器;

注意是 Servlet (容器)原生过滤器组件, 不是Spring 过滤链里的, @WebFilter这个注解是Servlet3.0的规范

在bean注解

@Configuration
@WebFilter(urlPatterns = "*.m3u8", filterName = "liveActiveFilter")
public class LiveActiveFilter implements Filter {
 
    ....
}

踩坑

还需要在启动方法上加上@ServletComponentScan注解!!!

Enables scanning for Servlet components ({@link WebFilter filters}, {@link WebServlet servlets}, and {@link WebListener listeners}). Scanning is only performed when using an embedded web server.