自定义拦截器

SpringMVC自定义拦截器原理分析 首先,要知道拦截器( HandlerInterceptor)是属于SpringMVC的可以实现接口,也可以继承类,两种方法一样。import org/*** @Desc: 自定义JWT令牌拦截器/*** 功能描述: 前置处理* @param request 请求对象* @param response 响应对象* @param handler 处理器对象* @return : boolean 是否放行:true-请求放行,false-请求阻止。 阅读详情

自定义拦截器

介绍

​ 拦截器是Java Web框架(如Spring MVC)中的一个组件,用于在请求 到达处理程序之前、处理器返回处理之后或视图渲染之前执行某些操作。

​ 拦截器可以用于执行日志记录、性能监控、身份验证、授权、请求转换等操作。拦截器通常是通过实现特定接口或注解来实现的,例如Spring MVC中的HandlerInterceptor接口。

实现拦截器的步骤

以Spring MVC为例

一、自定义类实现HandlerInterceptor接口

public class MyInterceptor implements HandlerInterceptor {  

}

二、重写方法

    @Override  
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {  
        // 在请求处理(Controller)之前执行的操作
        // 可以在这里进行身份验证、授权等操作  
        String num = request.getParameter("num");
        if (num != null) {
            System.out.println("拦截器放行");
            return true;
        }
        System.out.println("拦截器拦截");
        return false; // 返回true表示继续处理请求,返回false表示中断请求处理,后续流程不进行 
    }  
   
    @Override  
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {  
        // 在请求处理之后、视图渲染之前执行的操作  
        // 可以在这里进行日志记录、性能监控等操作  
    }  
   
    @Override  
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {  
        // 在整个请求处理结束之后执行的操作  
        // 可以在这里进行资源清理等操作  
    }  

三、添加拦截器配置

自定义的拦截器定义以及重写完方法之后,拦截器并不会生效,需要添加到WebMvcConfigurer中才会生效,在WebMvcConfigurer接口中重写addInterceptors方法添加拦截器配置。

@Configuration
public class MvcConfig implements WebMvcConfigurer {

    // 添加Mvc配置
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor());
    }
}

验证:

①定义一个测试Controller

@RestController
@RequestMapping("/mvc")
public class MvcController {

    @GetMapping("/one")
    public String getInfo() {
        return "Hello Word";
    }
}

②首先访问路径不带num参数

在这里插入图片描述

此时已经可以说明我们自定义的拦截器成功生效

③访问路径带num参数
在这里插入图片描述

【Spring Boot 3】自定义拦截器 本文介绍开发 Spring Boot 应用如何自定义拦截器(Interceptor)实现。Spring Boot 拦截器(Interceptor)基于 Java 反射机制实现,可以实现对 Controller 中方法进行拦截,并在方法执行前后进行响应的处理,是基于切面编程(AOP)的一种模式。权限校验日志记录性能监控拦截器(Interceptor)通常拿来与过滤器(Filter)进行比较,虽然它们在应用上存在诸多重叠,但实现原理完全不同。 阅读详情

相关推荐

flume自定义拦截器

背景介绍 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume有各种自带的拦截器,比如:TimestampInterceptor、HostInterceptor、RegexExtractorInterce...

weixin_41279091的博客 1160

自定义拦截器实现

"拦截器, 拦你所想, 放你所放". 简单实用的自定义拦截器, 你也可以轻松掌握

这个人很懒, 什么都没留下(这是我写的) 2461

【IT小趣闻】免费的DeepSeek是如何赚钱的?

导语:目前很多的通用人工智能也就是所谓的AGI例如文心一言、豆包、通义千问和最近大火的DeepSeek都是免费给普通用户使用的,对开源商业模式不太熟悉的普通人可不太了解这免费背后的商业套路,下面我们就一起来揭秘。开源模式能降低用户信任成本、加速技术普及,而商业化服务则针对企业级需求。DeepSeek 可通过组合上述策略,在服务开发者社区的同时,满足企业客户的深度需求,实现可持续发展。你也看出来了,上边是DeepSeek生成的,讲的还是挺明白的。

SunMy的博客 1768

SpringMVC框架学习笔记(八):自定义拦截器和异常处理

基于SpringMVC框架的自定义拦截器和异常处理

2301_76144723的博客 1877

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

【清华大学软院】15-19年推免试题历年整理

整理的题目为清软预推免机试(外校)硕士机考题目。 年代 题目1 题目2 题目3 2019 质因数分解 二叉搜索树 区间DP(折叠字符串) 2018 日期转换 高精度模拟 区间DP(戳气球) 2017 进制素数 被遗漏的数字 DP(收集苹果) 2016 大数运算 DP DFS 2015 进制素数: http://acm.hdu.edu.cn/showproblem.php?pid=1230 2017年题目(这个是找的最准确的题目): 1题见【链接】 2题见【链接】

云端筑梦师 2256

自定义拦截器(比如token校验的拦截器)

三、实现具体的拦截器,比如token校验的,你校验token的逻辑要写在这个类里面,具体的处理,preHandler方法表示进行拦截,然后判断是否使用。一、自定义一个拦截器配置类,里面可以配置不同的拦截器,比如校验token的、校验权限的等,在里面可以设置拦截的路径和放行的路径等。这个注解,当控制层使用这个注解,表示放行,该接口不进行token的校验)二、自定义注解(以校验token为例子,我自定义了。注解, 没有使用这个注解则需要进行token校验。3、token具体的拦截器。

zi2242975806的博客 1231

瑞萨MCU定时器API实战:从Smart Configurator配置到中断与输入捕获应用

在嵌入式系统开发中,定时器(Timer)是实现精准时序控制、PWM输出和信号测量的核心硬件外设。其工作原理基于计数器在稳定时钟源驱动下递增或递减,达到预设值后触发中断或改变输出电平,从而为系统提供节拍和事件基准。通过图形化配置工具(如瑞萨的Smart Configurator),开发者可以高效地将复杂的硬件寄存器操作转化为清晰、标准化的C语言API函数,这极大地提升了开发效率并降低了出错风险。这种从硬件抽象到软件接口的技术价值在于,它使得开发者能更专注于应用逻辑,而非底层细节,尤其适用于工业控制、汽车电子等

weixin_42519733的博客 274

Kafka 之自定义消息拦截器【Kafka 拦截器】

Kafka 自定义拦截器结果验证之生产者代码/*** @Description: 手动ACK消息生产者*/@Slf4j@Component@Autowired//同步发送消息//同步发送消息try {log.info("Manual ACK 消息生产者完成消息发送,当前时间:{}", dateStr);Kafka 自定义拦截器结果验证之消费者代码/*** @Description: 手动 ACK 消息消费*/@Slf4j。

weixin_42118323的博客 2178

第7篇-SAP MM模块-JIT应用实战解析,从计划协议到JIT供应的关键配置与流程

本文深入解析SAP MM模块中的JIT(Just In Time)供应模式,从计划协议到JIT供应的关键配置与流程。通过动态计划行管理、需求聚合与分解等核心功能,实现精确数量、时间和地点的物料供应。文章详细介绍了主数据准备、计划协议配置、MRP参数精调及EDI集成方案,并提供了实施中的典型问题与解决方案,助力企业优化供应链管理。

weixin_30363509的博客 948

基于STM32设计的智能防盗单车锁_349

本设计基于STM32F103RCT6单片机,研制了一种适用于户外环境的智能防盗单车锁系统。系统集成了GPS定位模块、ADXL345加速度传感器、4G通信模块(Air780E)、OLED显示屏、继电器模拟锁控模块等硬件,通过姿态感知实现车辆异常移动检测,在锁车状态下自动触发蜂鸣器报警并通过短信与APP通知用户。

868

MyBatis自定义拦截器

mybatis自定义拦截

weixin_40017062的博客 2582

RK3588多核NPU并行加速yolo优化教程:基于线程池的高性能推理实现

本教程详细介绍了RK3588多核NPU的并行加速优化方法。RK3588搭载三个独立NPU核心,总计算能力达6TOPS,但传统单线程方式无法充分发挥其性能。文章从硬件架构分析入手,详细讲解了三核心独立处理架构和多种工作模式,并通过代码示例展示了线程池技术的实现原理。线程池通过预创建工作线程、任务队列和条件变量等核心组件,避免了频繁创建线程的开销,能显著提升NPU的并行处理效率。教程还提供了性能计算公式和内存带宽优化策略,帮助开发者最大化利用RK3588的硬件算力,实现高性能AI推理。

LXY_LOVE36的博客 1024

flume拦截器及自定义拦截器

拦截器做什么呢? 时间拦截器 以时间拦截器为例.会在Event的header中添加一个属性进去,属性的key叫做timestamp, value是当前的毫秒值. 问题是写到header然后呢?有啥用呢? 就是在比如说保存到hdfs上时,这个header中的时间戳的value可以作为文件夹的目录,这样就比较方便. 也可以比如说加到文件名上面. a1.sources.r1.interceptors = i1 i2 i3 a1.sources.r1.interceptors.i1.type = timestam

鸭梨的博客 980

【文献笔记】ICCV 2021 | Point Transformer

作者提到,特别适合点云处理,因为自注意力机制是的核心,本质上就是一个集合算子:它对输入元素具有顺序不变性和数量不变性3D点云是无序的,即使改变点云txt文件中的点顺序也不会有任何影响。自注意力机制天然具有排列不变性,因为它通过对所有"点对"的关系进行建模来处理输入,而不依赖于任何特定的输入顺序点云数据通常覆盖了3D空间中的对象或场景,理解这些数据需要捕捉点与点之间复杂的空间关系。自注意力机制能够有效的捕捉这些关系,因为它为每个"点对"赋予一个。

m0_55908255的博客 966

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Flume拦截器(含自定义拦截器)

Flume拦截器(含自定义拦截器)一、Flume拦截器1.1 时间戳拦截器1.2 主机名拦截器1.3 UUID拦截器1.4 查询替换拦截器1.5 正则过滤拦截器1.6 正则抽取拦截器二、Flume自定义拦截器2.1 添加Pom.xml依赖2.2 自定义实现拦截器2.3 Flume配置文件三、其它案例 ——————— —————————— —————————— —————————— ...

weixin_43520450的博客 1729

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Flowable自定义MyBatis拦截器

众所周知,Flowable使用的是Mybatis框架进行数据库的CRUD操作,有时候我们想打印这些查询或者更新sql一共耗费了多长时间,这个时候我们就期望使用Mybatis的拦截器进行一些sql的拦截和sql执行时间的统计。如题步骤如下: 1、自定义Mybatis拦截器 @Intercepts({ @Signature(type = Executor.class, me...

分享牛 9978

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Struts2 自定义拦截器(方法拦截器)

struts2系统自带了很多拦截器,有时需要我们自己定义,一般有两种方式: 一、实现Interceptor接口 1 public interface Interceptor extends Serializable{ 2 public void init(); 3 public void destroy(); 4 pu

Golden_lion的博客 4031

springboot 自定义注解拦截器

springboot 自定义注解拦截器 最近在工作中,发现自定义注解拦截使用起来特别方便,现在来写出来给大家看看 环境springboot 首先写一个自定义注解 package com.study.cdmy.common; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; impor...

梦醒了该散了的博客 2594

MVC——15 自定义拦截器&拦截器栈

自定义拦截器 1.跟过滤器比较像的技术 2.发送请求时被拦截器拦截,在控制器的前后添加额外功能. 跟 AOP 区分开.AOP 在特定方法前后扩充(对 ServiceImpl) 拦截器,请求的拦截.针对点是控制器方法(对 Controller) 3.SpringMVC 拦截器和 Filter 的区别 拦截器只能拦截器 Controller Filter 可以拦截任何请求 4.实现自定义拦截器...

Re_view的博客 446

自定义时间拦截器

struts.xml文件 "1.0"encoding="UTF-8"?>     "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN"     "http://struts.apache.org/dtds/struts-2.3.dtd">     "inter" extends="struts-defaul

1261

SpringBoot自定义拦截器以及多个拦截器执行顺序

springboot自定义拦截器 多个拦截器执行流程

东风麦芽糖 1794

SpringMVC 自定义拦截器

简介 • Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口 – preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对 请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如...

Hern(宋兆恒) 2001
上一篇: 使用slf4j包格式化字符串
下一篇: JAVA8新特性
超级霸王龙战士
博客等级 码龄5年 26粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值