首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Springboot实现过滤器

Springboot实现过滤器

作者头像
一个风轻云淡
发布2022-11-13 11:10:05
发布2022-11-13 11:10:05
8140
举报
文章被收录于专栏:java学习javajava学习java

Springboot实现过滤器有以下俩种方式,第一种方式俩步走,即向spring容器注册filter

第一种:

1.Filter过滤器具体实现类

代码语言:javascript
复制
@Component
@Slf4j
public class MyTestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        log.info("[ {} ] 创建啦...", this.getClass().getSimpleName());
    }
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        log.info("[ {} ] 执行啦...", this.getClass().getSimpleName());
 
        chain.doFilter(request, response);
    }
 
    @Override
    public void destroy() {
        log.info("[ {} ] 被摧毁啦...", this.getClass().getSimpleName());
    }
}

2.向spring容器注册filter

代码语言:javascript
复制
@Configuration
public class FilterConfig {
 
    @Resource
    private MyTestFilter myTestFilter;
 
    @Bean
    public FilterRegistrationBean testFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean(myTestFilter);
        registration.addUrlPatterns("/filter/*");
        registration.setName("testFilter");
        registration.setOrder(1);
        return registration;
    }
}

 第二种:

通过@WebFilter 注解来配置

代码语言:javascript
复制
@Component
@WebFilter(urlPatterns = "/filter/*", filterName = "myTestFilter") 
@Slf4
public class MyTestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        log.info("[ {} ] 创建啦...", this.getClass().getSimpleName());
    }
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        log.info("[ {} ] 执行啦...", this.getClass().getSimpleName());
 
        chain.doFilter(request, response);
    }
 
    @Override
    public void destroy() {
        log.info("[ {} ] 被摧毁啦...", this.getClass().getSimpleName());
    }
}

还需要在 SpringBootApplication 上使用@ServletComponentScan

注解后 Servlet可以直接通过@WebServlet注解自动注册 Filter可以直接通过@WebFilter注解自动注册 Listener可以直接通过@WebListener 注解自动注册

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Springboot实现过滤器有以下俩种方式,第一种方式俩步走,即向spring容器注册filter
  • 1.Filter过滤器具体实现类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档