Spring boot 自定义 Filter 教程
Spring boot 自定义 Filter 教程
使用过 Spring boot 后的程序员都对它赞不绝口,它作为 Java 开发的一个快速搭建项目的一个脚手架,能极大的方便我们创建项目,加快开发进度等。想要完全的学会 Spring boot,就要理解其中的原理,Spring boot 官方的文档写的也非常的详细。大家想要的各种功能,各种 API 说明,对接其它框架都有相应的文档和案例。所以需要深入的同学可以到 Spring boot 的官网看看它的一些使用教程。
有人在 QQ 里问我,Spring boot 如何自定义 Filter ?
其实很简单,Spring boot 对 Filter、Servlet、Listener 都是支持的。对应的它提供了三个强大的组件,分别是 FilterRegistrationBean、ServletRegistrationBean、ServletListenerRegistrationBean。其中 ServletRegistrationBean 我们在《Spring boot 添加 Servlet(ServletRegistrationBean) 支持的教程》这篇文章中介绍过,我这里就不在多少了。具体说说 FilterRegistrationBean。
@Configuration
public class XttblogConfig{
@Bean
public FilterRegistrationBean xttblogFilter(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new XttblogFilter());
registrationBean.setUrlPatterns(Arrays.asList("/hello","/myServlet"));
return registrationBean;
}
@Bean
public FilterRegistrationBean myFilter(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new MyFilter());
registrationBean.setUrlPatterns(Arrays.asList("/hello","/myServlet"));
return registrationBean;
}
}
想要自定义 Filter 就是这么简单,几行代码就搞定。多个 Filter 就配置多个 @Bean。
有些人说什么功能需要用到 Filter 啊,基本用不到吧。千万别这样想,既然 Spring boot 留了接口就一定有用到的场景,比如在使用阿里巴巴的数据库连接池 Druid 的时候等。所以说多学学还是很有必要的。