Spring boot 自定义 Filter 教程

/ Java / 没有评论 / 1376浏览

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 的时候等。所以说多学学还是很有必要的。