文章目录

  • 前言
  • 一、基于注解
  • 二、注册bean

前言

在我们开发中经常需要对请求做一些自定义的过滤处理,如最常见的jwt每次请求进来我们都需要去解析判断token这个时候肯定就需要自定义一个filter去处理。spring为我们提供了两种自定义filter方式,一种是基于注解@WebFilter,一种是手动注册bean的方式。

一、基于注解

基于注解的方式相对步骤简单些,但是由于它的一些局限性生产中基本见不到其身影。大致只需要三步骤:

1、实现Filter接口(javax.servlet)
2、添加@WebFilter注解
3、启动类添加@ServletComponentScan注解

注意:

  • 1、不加@ServletComponentScan注解无法注入Filter,这个注解的作用就是去扫描@WebServlet、@WebFilter、@WebListener这类特殊注解。如果不加,spring容器是不会主动扫描的

  • 2、多个Filter的执行顺序,说出来你可能不信,这种注解方式实现的Filter是通过Filter的类名首字母来控制执行顺序的,像Filter1_Filter就比Filter2_Filter先执行。但网上一些资料说,当Filter数量很多时,是没有明确的执行顺序的,所以这种方式还是放弃吧,推荐第二种

二、注册bean

    @Beanpublic FilterRegistrationBean<AuthenticationTokenFilter> registration(AuthenticationTokenFilter filter) {FilterRegistrationBean<AuthenticationTokenFilter> authenticationTokenFilter = new FilterRegistrationBean<>(filter);// 设置拦截哪些 URL
//        filter.addUrlPatterns("/*");//order的数值越小,在所有的filter中优先级越高authenticationTokenFilter.setOrder(0);authenticationTokenFilter.setEnabled(true);return authenticationTokenFilter;}

spring---自定义Filter有两种方式相关推荐

  1. Spring Boot自定义 Servlet Filter 的两种方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 针 ...

  2. EntityFramework Core 2.0自定义标量函数两种方式

    前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...

  3. iOS 自定义layer的两种方式

    在iOS中,你能看得见摸得着的东西基本都是UIView,比如一个按钮,一个标签,一个文本输入框,这些都是UIView: 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIVi ...

  4. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

  5. spring 注入bean的两种方式

    我们都知道,使用spring框架时,不用再使用new来实例化对象了,直接可以通过spring容器来注入即可. 而注入bean有两种方式: 一种是通过XML来配置的,分别有属性注入.构造函数注入和工厂方 ...

  6. Spring系列教程八: Spring实现事务的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 一. Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的 ...

  7. Unity中制作自定义字体的两种方式

    Unity支持自定义图片字体(CustomFont),网上有很多教程,细节不尽相同,当概括起来基本就是两种方式.一是使用BMFont,导出图集和.fnt文件,再使用图集在Unity中设置得到字体.二是 ...

  8. Spring定义Bean的两种方式:<bean>和@Bean

    前言: Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. 今天通过S ...

  9. springboot过滤字段_SpringBoot自定义过滤器的两种方式及过滤器执行顺序

    第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter必须实现  javax.servlet.Filter ...

最新文章

  1. AttributeError: module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘解决方法
  2. mysql 归档日志恢复_Oracle丢失归档日志文件的数据库恢复方法
  3. boost::callable_traits添加member_cv的测试程序
  4. 【微信小程序】跳转到另一个微信小程序
  5. 测试枕头软件,智能枕头:一款神器监测您的睡眠
  6. 交互式多模型_体系化教学资源上新——小学数学交互式教学工具
  7. c语言如果调用的函数没有return,C语言中,整型函数若在调用时未获得return值,此时其值是如何确定的?...
  8. Bailian2702 密码翻译【密码】
  9. 11.sql条件查询
  10. java零基础自学首选黑马程序员Java入门教程笔记01
  11. php和tp中生成二维码电子名片
  12. Nebula Graph介绍和SpringBoot环境连接和查询
  13. Java P5713 【深基3.例5】洛谷团队系统 洛谷入门题
  14. 应届生面试应答需要注意哪些事项及技巧?
  15. java学习之屌丝逆袭
  16. 关于数学计算机手抄报简单的,二年级数学简单手抄报图片大全
  17. word2013表格文字上下居中
  18. 8个国外免费学习编程的网站,果断收藏!
  19. MySQL死锁产生的原因和解决方法
  20. 关于IIC初始化后就进入busy状态的问题

热门文章

  1. 江苏计算机设计大赛2018,附件12018年江苏省大学生计算机设计大赛校级选拔赛大赛内.doc...
  2. 解决 访问 github 网速慢 (亲测有效,速度大幅度提升)
  3. 网络协议 7 - UDP 协议
  4. atan2与atan的区别
  5. 在校大学生如果连「校招」都不知道,那大学就白读了
  6. gre计算机科学,电子工程与计算机科学留学分享会(内含回顾实录+GRE福利包)...
  7. CTF相关网站收集(自用)
  8. 【陈工笔记】# 汇总人工智能大赛,提升个人竞技能力 #
  9. DDOS攻击来势汹汹,遇上再临时搭建DDOS防护将无法应对
  10. enumerate()是什么意思?