spring---自定义Filter有两种方式
文章目录
- 前言
- 一、基于注解
- 二、注册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有两种方式相关推荐
- Spring Boot自定义 Servlet Filter 的两种方式
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 针 ...
- EntityFramework Core 2.0自定义标量函数两种方式
前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...
- iOS 自定义layer的两种方式
在iOS中,你能看得见摸得着的东西基本都是UIView,比如一个按钮,一个标签,一个文本输入框,这些都是UIView: 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIVi ...
- spring配置属性的两种方式
spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...
- spring 注入bean的两种方式
我们都知道,使用spring框架时,不用再使用new来实例化对象了,直接可以通过spring容器来注入即可. 而注入bean有两种方式: 一种是通过XML来配置的,分别有属性注入.构造函数注入和工厂方 ...
- Spring系列教程八: Spring实现事务的两种方式
2019独角兽企业重金招聘Python工程师标准>>> 一. Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的 ...
- Unity中制作自定义字体的两种方式
Unity支持自定义图片字体(CustomFont),网上有很多教程,细节不尽相同,当概括起来基本就是两种方式.一是使用BMFont,导出图集和.fnt文件,再使用图集在Unity中设置得到字体.二是 ...
- Spring定义Bean的两种方式:<bean>和@Bean
前言: Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. 今天通过S ...
- springboot过滤字段_SpringBoot自定义过滤器的两种方式及过滤器执行顺序
第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter必须实现 javax.servlet.Filter ...
最新文章
- AttributeError: module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘解决方法
- mysql 归档日志恢复_Oracle丢失归档日志文件的数据库恢复方法
- boost::callable_traits添加member_cv的测试程序
- 【微信小程序】跳转到另一个微信小程序
- 测试枕头软件,智能枕头:一款神器监测您的睡眠
- 交互式多模型_体系化教学资源上新——小学数学交互式教学工具
- c语言如果调用的函数没有return,C语言中,整型函数若在调用时未获得return值,此时其值是如何确定的?...
- Bailian2702 密码翻译【密码】
- 11.sql条件查询
- java零基础自学首选黑马程序员Java入门教程笔记01
- php和tp中生成二维码电子名片
- Nebula Graph介绍和SpringBoot环境连接和查询
- Java P5713 【深基3.例5】洛谷团队系统 洛谷入门题
- 应届生面试应答需要注意哪些事项及技巧?
- java学习之屌丝逆袭
- 关于数学计算机手抄报简单的,二年级数学简单手抄报图片大全
- word2013表格文字上下居中
- 8个国外免费学习编程的网站,果断收藏!
- MySQL死锁产生的原因和解决方法
- 关于IIC初始化后就进入busy状态的问题
热门文章
- 江苏计算机设计大赛2018,附件12018年江苏省大学生计算机设计大赛校级选拔赛大赛内.doc...
- 解决 访问 github 网速慢 (亲测有效,速度大幅度提升)
- 网络协议 7 - UDP 协议
- atan2与atan的区别
- 在校大学生如果连「校招」都不知道,那大学就白读了
- gre计算机科学,电子工程与计算机科学留学分享会(内含回顾实录+GRE福利包)...
- CTF相关网站收集(自用)
- 【陈工笔记】# 汇总人工智能大赛,提升个人竞技能力 #
- DDOS攻击来势汹汹,遇上再临时搭建DDOS防护将无法应对
- enumerate()是什么意思?