SpringBoot之自定义拦截器

一、自定义拦截器实现步骤

1、创建拦截器类并实现HandlerInterceptor接口

2、创建SpringMVC自定义配置类,实现WebMvcConfigurer接口中addInterceptors方法

3、将自定义拦截器类加入配置类

二、代码实现

自定义拦截器类:

复制代码
public class MyInterceptor1 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("MyInterceptor1 -> preHandle执行了");
        //true表示继续执行
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("MyInterceptor1 -> postHandle 执行了");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("MyInterceptor1 -> afterCompletion 执行了");
    }
}
复制代码

配置类:

复制代码
@Configuration
public class MVCConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //addPathPatterns添加拦截路径
        //excludePathPatterns添加不拦截路径
        registry.addInterceptor(new MyInterceptor1()).addPathPatterns("/test1/**").excludePathPatterns("/test2");
    }
}
复制代码

创建控制器进行测试:

复制代码
@RestController
public class InterceptorController {

    @RequestMapping("/test1/{name}")
    public String test1(@PathVariable("name") String name) {
        return "hi, " + name;
    }

    @RequestMapping("/test2")
    public String test2() {
        return "test2";
    }
}
复制代码

 

 输入localhost:8080/test2

 控制台无输出即表示没有拦截

 输入localhost:8080/test1/jack

 控制台输出:

posted @   liquorppp  阅读(645)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示