03-Springboot-实现自定义拦截器

1、定义拦截器

实现HandlerInterceptor


@Component
public class WxMiniInterceptor   implements HandlerInterceptor { /*** @return 返回 true 放行、放回 false 拦截*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {log.info("进入微信小程序用户拦截器url={}" , request.getRequestURI());//过滤掉 确认的 options 请求if (HttpMethod.OPTIONS.name().equals(request.getMethod())) {return true;}String token = request.getHeader("token");if(StrUtil.isBlank(token)){ return false;}return true;}
}

2、加入拦截器配置


@Configuration
public class ResourcesConfig implements WebMvcConfigurer
{@Autowiredprivate RepeatSubmitInterceptor repeatSubmitInterceptor;@Autowiredprivate WxMiniInterceptor wxMiniInterceptor;@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry){/** 本地文件上传路径 */registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + BhlConfig.getProfile() + "/");/** swagger配置 */registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");}/*** 自定义拦截规则*/@Overridepublic void addInterceptors(InterceptorRegistry registry){registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");// 如果有多个拦截器,继续添加即可registry.addInterceptor(wxMiniInterceptor)// 放行.excludePathPatterns("/weixin/mini/login", "/weixin/mini/pay/notify")// 拦截.addPathPatterns("/weixin/mini/**");}
}    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/683283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

商业化运营关键指标

指标项全称 ARPU Average Revenue Per User 统计周期内每用户平均收入ARPU总收入/用户数。通过将一个特定时间段内的总收入除以平均用户数量来计算用于衡量每个用户对产品的利益价值以及企业用户构成ARPU值不反映利润情况,只反映收入情况帮助企业了解他们的用户…

使用Spacy做中文词频和词性分析

使用Spacy python库做中文词性和词频分析,读取word并给出其中每个词的词频和词性,写入excel表。 1、为什么选择Spacy库 相比与NLTK这个库更快和更准 2、模型比较 zh_core_web_trf模型,模型大,准确性高。 需要确保你的Spacy版本是…

算法沉淀——队列+宽度优先搜索(BFS)(leetcode真题剖析)

算法沉淀——队列宽度优先搜索(BFS) 01.N 叉树的层序遍历02.二叉树的锯齿形层序遍历03.二叉树最大宽度04.在每个树行中找最大值 队列 宽度优先搜索算法(Queue BFS)是一种常用于图的遍历的算法,特别适用于求解最短路径…

B3638 T1 三角形面积

题目背景 请尽量在 20min 之内写完题目。这是指「写代码」的时间;「读题」时间不计算在内。 题目描述 给定平面直角坐标系上的三个整点 A,B,C 的坐标,求其围成的三角形面积。 数据保证答案一定是整数。所以如果你采用了浮点数来计算,请四…

从零开始学HCIA之网络服务与应用01

1、单通道协议,通信时只需要建立一个TCP/UDP会话,使用固定的端口号,例如 http。 3、多通道协议,通信需要建立多个TCP/UDP会话,使用的端口号未必固定,动态协商生成,例如ftp,sip&…

前端Vue篇之 Vue的基本原理

目录 Vue的基本原理响应式数据模板组件系统指令生命周期钩子虚拟 DOMwatcher Vue的基本原理 Vue.js 是一个流行的 JavaScript 框架,用于构建用户界面和单页面应用。其基本原理包括: 响应式数据:Vue 的核心是响应式数据系统。在创建 Vue 实例…

探秘Java反射:灵活编程的利器

前言 大家好,我是chowley,不知道大家在学习Java的过程中有没有听过反射的概念,今天我来总结一下我心中的Java反射。 在Java编程中,反射是一种强大的工具,它允许程序在运行时检查和操作类、方法、属性等,而…

网络安全产品之认识蜜罐

文章目录 一、什么是蜜罐二、蜜罐的主要类型三、蜜罐的主要功能四、蜜罐的主要组成及核心技术五、蜜罐的优缺点六、蜜罐如何与其他安全工具协同工作?七、什么是“蜜网”?与蜜罐的联系和区别是什么? 蜜罐的概念首次由Clifford Stoll在其1988年…

Ps:统计

Ps菜单:文件/脚本/统计 Scripts/Statistics 统计 Statistics脚本命令提供了一种高效的方法来处理和分析大量图像,使用户能够自动执行复杂的图像分析任务,并在多个图像间应用统计学方法。这个功能极大地扩展了 Photoshop 在科学研究、图像编辑…

【单总线与DS18B20总结和代码实现】

单总线介绍与总结 单总线介绍单总线时序图DS18B20的操作流程代码 读温度代码思路代码实现 单总线介绍 单总线应用案例:Ds18B20、温湿度传感器用到的就是这个,这里Ds18B20从当的角色是从机部分,而开发板充当的部分人是主机部分。 Ds18B20内部结…

docker (三)-开箱即用常用命令

一 docker架构 拉取镜像仓库中的镜像到本地,镜像运行产生一个容器 registry 镜像仓库 registry可以理解为镜像仓库,用于保存docker image。 Docker Hub 是docker官方的镜像仓库,docker命令默认从docker hub中拉取镜像。我们也可以搭建自己…

【数据结构】二叉树的三种遍历

目录 一、数据结构 二、二叉树 三、如何遍历二叉树 一、数据结构 数据结构是计算机科学中用于组织和存储数据的方式。它定义了数据元素之间的关系以及对数据元素的操作。常见的数据结构包括数组、链表、栈、队列、树、图等。 数组是一种线性数据结构,它使用连续…

18 19 SPI接口的74HC595驱动数码管实验

1. 串行移位寄存器原理(以四个移位寄存器为例) 1. 通过移位寄存器实现串转并:一个数据输入端口可得到四位并行数据。 通过给data输送0101数据,那么在经过四个时钟周期后,与data相连的四个寄存器的输出端口得到了0101…

第1章 计算机网络体系结构-1.1计算机网络概述

1.1.1计算机网络概念 计算机网络是将一个分散的,具有独立功能的计算机系统通过通信设备与路线连接起来,由功能完善的软件实现资源共享和信息传递的系统。(计算机网络就是一些互连的,自治的计算机系统的集合) 1.1.2计算机网络的组成 从不同角…

【Linux】环境变量及相关指令

一、环境变量的基本概念 其实,我们早就听说过环境变量,比如在学习 JAVA / Python 的时候,会在 Windows 上配置环境变量: 环境变量到底是什么呢? 环境变量(environment variables)一般是指在操作…

数码管扫描显示-单片机通用模板

数码管扫描显示-单片机通用模板 一、数码管扫描的原理二、display.c的实现1、void Display(void) 各模式界面定义数据2、void BackupRamToDisRam(void)从缓存区刷新显示映射Ram3、void FreshDisplay(void) 映射显示Ram到主控的IO口4、void LcdDisplay_8bit(void) 映射显示Ram到…

C++类和对象-继承->基本语法、继承方式、继承中的对象模型、继承中构造和析构顺序、继承同名成员处理方式、继承同名静态成员处理方式、多继承语法、菱形继承

#include<iostream> using namespace std; //普通实现页面 //Java页面 //class Java //{ //public: // void header() // { // cout << "首页、公开课、登录、注册...&#xff08;公共头部&#xff09;" << endl; // } // voi…

python 算法之 克鲁斯卡尔算法

文章目录 原理代码实现 原理 克鲁斯卡尔&#xff08;Kruskal&#xff09;算法是一种用于求解最小生成树&#xff08;Minimum Spanning Tree&#xff0c;MST&#xff09;的贪心算法。最小生成树是一个连通加权无向图中生成树&#xff08;即包含图中所有顶点并且是一棵树&#xf…

C++预处理命令与宏定义

C的预处理命令用于在编译源代码之前进行一些处理。预处理器指令以井号&#xff08;#&#xff09;开头&#xff0c;常用于包含头文件、宏定义和条件编译等操作。以下是几个常见的C预处理命令&#xff1a; 包含文件 #include <iostream> // 包含标准库头文件 #include &…

Vuex使用

Vuex 一、概述 二、State 存放状态的 1、创建state const state {title: 我是一个标题,content: 今天的天气是好的,age: 2, };2、使用 直接在页面直接使用 //非模块化写法 <div>{{ $store.state.title }}</div> //模块化写法 <div>{{ $store.state.abo…