开发者社区> 问答> 正文

在SpringBoot中怎么写一个Filter

问题引述: 在传统的Web项目中,我们通常在web.xml中定义一个filter,定义其实现类,过滤url等,大概如下定义:


<filter>
     <filter-name></filter-name>
        <filter-class>com.alibaba.filters.FilterName</filter-class>
</filter>
<filter-mapping>
    <filter-name>FilterName</filter-name>
    <url-pattern>/url/*</url-pattern>
    <init-param>
       <param-name>paramName</param-name>
       <param-value>paramValue</param-value>
    </init-param>
</filter-mapping>


通常,我们只要让FilterName这个类implement Filter并重写其doFilter方法即可。但是在SpringBoot项目中要怎么使用Filter呢?通常SpringBoot项目可没有web.xml文件。

这里大概有两种方法可以实现:

  • 配置FilterRegistrationBean。配置这个Bean有点像配置xml,首先我们定义一个配置类,使用@Component标注。其次,我们就可以去实现这个Bean了。

@Component

public class ConfigClass{

      FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(someFilter());
    registration.addUrlPatterns("/url/*");
    registration.addInitParameter("paramName", "paramValue");
    registration.setName("someFilter");
    registration.setOrder(1);
    return registration;
}

然后,只要实现这个someFilter类就可以了。实现步骤和传统web项目一致。

  • 直接编写Filter,只需要在该Filter类上打上@Component标签即可。

展开
收起
大俊哥哥 2019-12-01 20:15:51 705 0
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多