前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot自定义拦截器

SpringBoot自定义拦截器

作者头像
鹤川
发布2023-04-27 15:44:18
2460
发布2023-04-27 15:44:18
举报
文章被收录于专栏:鹤川博客

SpringBoot自定义拦截器

1、自己创建拦截器类,实现:HandlerInterceptor接口

2、创建MVC的配置(拦截器的)类,实现:WebMvcConfigurer接口。在addInterceptors中:可以添加多个拦截器,每个拦截器可以添加多个PathPatterns

一、自己创建拦截器类

S21Interceptor.java

代码语言:javascript
复制
package com.qicong.sboot.s21;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * User: 祁大聪
 */
publicclass S21Interceptor implementsHandlerInterceptor{

    //在请求到Controller之前调用
    @Override
    publicboolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler)throwsException{
        System.out.println("S21Interceptor:: preHandle");
        returntrue;
//        response.getWriter().write("S21Interceptor return false");
//        return false;//不去请求Controller,直接返回
    }

    //在请求到Controller之后,在渲染页面层之前调用
    @Override
    publicvoid postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView)throwsException{
        System.out.println("S21Interceptor:: postHandle");
    }

    //请求完成调用
    @Override
    publicvoid afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex)throwsException{
        System.out.println("S21Interceptor:: afterCompletion");
    }
}

二、创建MVC配置

S21WebMvcConfigurer.java

代码语言:javascript
复制
package com.qicong.sboot.s21;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * User: 祁大聪
 */
@Configuration
publicclass S21WebMvcConfigurer implementsWebMvcConfigurer{

    @Override
    publicvoid addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(new S21Interceptor()).addPathPatterns("/s21/**");
    }
}

三、创建一个Controller,测试拦截

S21Controller.java

代码语言:javascript
复制
package com.qicong.sboot.s21;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * User: 祁大聪
 */
@Controller
@RequestMapping("s21")
publicclass S21Controller {

    @RequestMapping("index")
    @ResponseBody
    publicString index(){
        return"success";
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot自定义拦截器
    • 一、自己创建拦截器类
      • 二、创建MVC配置
        • 三、创建一个Controller,测试拦截
        相关产品与服务
        腾讯云服务器利旧
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档