在Springboot项目中添加拦截器,分两步:

1:创建一个拦截器类

2:配置拦截器

以上步骤完成就可以使用了,下面来添加拦截器:

1:创建一个拦截器类 MyInteceptor 继承 HandlerInterceptor 接口,然后实现它的几个方法,如下:

package com.yyy.config;

import com.yyy.pojo.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* @auther YueYangyang
* @date 2020/6/25 21:28
*/
@Slf4j
public class MyInteceptor implements HandlerInterceptor {
@Autowired
private RedisTemplate redisTemplate; @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.debug("这是MyInteceptor的preHandle方法。");
return true;
} @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
log.debug("这是MyInteceptor的postHandle方法。");
} @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
log.debug("这是MyInteceptor的afterCompletion方法。");
}
}

以上三个重写方法中 preHandle 方法就是拦截的时候,会进的方法,此时就写一个拦截器是不行的,那么什么时候拦截呢,那就要再写一个配置类,告诉拦截器什么时候拦截、什么时候不拦截

2:配置拦截器  我们建一个配置类 MvcConfig 继承 WebMvcConfigurer接口,先将我们上一步写的拦截器注入到 bean 中,然后重写它的 addInterceptors 方法,代码如下:

package com.yyy.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /**
* @auther YueYangyang
* @date 2020/6/25 21:30
*/
@Configuration
public class MvcConfig implements WebMvcConfigurer {
//注入bean
@Bean
public MyInteceptor myInteceptor(){
return new MyInteceptor();
} //重写拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
//excludePathPatterns 是放行
//addPathPatterns
registry.addInterceptor(myInteceptor()).addPathPatterns("/user/**","/main/**").excludePathPatterns("/login/**","/user/loginIn");
} }

此处要注意的是 注入bean 的方法名  要与重写方法中的标红位置名一致。

到这里 我们就已经写好了拦截器了,其中配置类中 addPathPatterns 中的内容是,需要拦截的方法路径,excludePathPatterns 中的内容是需要放行的路径

Springboot 拦截器的配置的更多相关文章

  1. Springboot 拦截器配置(登录拦截)

    Springboot 拦截器配置(登录拦截) 注意这里环境为springboot为2.1版本 1.编写拦截器实现类,实现接口   HandlerInterceptor, 重写里面需要的三个比较常用的方 ...

  2. Java结合SpringBoot拦截器实现简单的登录认证模块

    Java结合SpringBoot拦截器实现简单的登录认证模块 之前在做项目时需要实现一个简单的登录认证的功能,就寻思着使用Spring Boot的拦截器来实现,在此记录一下我的整个实现过程,源码见文章 ...

  3. SpringBoot拦截器中Bean无法注入(转)

    问题 这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于其他bean在service,controller层注入一点问题也没有,开始根本没意识到Be ...

  4. 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener

    =================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...

  5. Springboot拦截器未起作用

    之前遇到要使用springboot拦截器却始终未生效的状况,查了网上的博客,大抵都是@Component,@Configuration注解未加,或是使用@ComponentScan增加包扫描,但是尝试 ...

  6. SpringBoot拦截器中service或者redis注入为空的问题

    原文:https://my.oschina.net/u/1790105/blog/1490098 这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于 ...

  7. springboot + 拦截器 + 注解 实现自定义权限验证

    springboot + 拦截器 + 注解 实现自定义权限验证最近用到一种前端模板技术:jtwig,在权限控制上没有用springSecurity.因此用拦截器和注解结合实现了权限控制. 1.1 定义 ...

  8. SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  9. Springboot拦截器使用及其底层源码剖析

    博主最近看了一下公司刚刚开发的微服务,准备入手从基本的过滤器以及拦截器开始剖析,以及在帮同学们分析一下上次的jetty过滤器源码与本次Springboot中tomcat中过滤器的区别.正题开始,拦截器 ...

  10. SpringBoot 拦截器获取http请求参数

    SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 目录 SpringBoot 拦截器获取http请求参数-- 所有骚操作基础 获取http请求参数是一种刚需 定义拦截器获取请求 为 ...

随机推荐

  1. c语言学习总结(原创)

    什么是标识符? 标识符是用来标识变量.函数.类.模块,或者任何其他用户自定义项目的名称,用它来命名程序正文中的一些实体,比如函数名.变量名.类名.对象名等.如:int a1=0; const b1=& ...

  2. 软件安装——idea的安装和使用

    Idea的安装和使用 一.下载和安装 下载步骤 官网下载地址:Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBr ...

  3. Java基础篇——注解和反射

    注解 注解Annotation可以被其他程序(编译器)读取,常见的有@override 内置注解 @Override 适用于修饰方法,表明重写父类中的一个方法 @Deprecated 用于修饰类.方法 ...

  4. Docker部署python-Flask应用

    title: Docker部署python Flask应用 date: 2022-11-19 13:00:25 tags: - python 环境 系统:windows10 python:python ...

  5. C#爬虫开发小结

    前言 2023年以来一直很忙,临近春节,各种琐事更多,但鸽了太久没写文章总是不舒坦,忙中偷闲来记录下最近用C#写爬虫的一些笔记. 爬虫一般都是用Python来写,生态丰富,动态语言开发速度快,调试也很 ...

  6. 经典问题 1 —— DAG 上区间限制拓扑序

    问题描述 给定一个 DAG,求一个拓扑序,使得节点 \(i\) 的拓扑序 \(\in [l_i,r_i]\). 题解 首先进行一个预处理:对于所有 \(u\),令 \(\forall (v,u)\in ...

  7. angular小练习--手写弹出窗口以及文件上传或者复制粘贴,后读取打印文件内容

    实现代码如下 <page-header> <ng-template> </ng-template> </page-header> <div> ...

  8. Swagger的基本使用

    Swagger简介和使用 使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等. ...

  9. 微软外服札记④——Spark中的那些坑...

    Spark中的那些坑 Spark中的那些坑 前言 读取配置文件 时区陷阱 怪异的DayOfWeek substring陷阱 IP地址解析 枚举的数值 posexplode函数 为什么我的程序运行那么慢 ...

  10. Cow Picnic S 更新了(在后面)

    解题思路: 从每头奶牛的节点开始做搜索,用dfs走遍所有路径(走到底,不回头).每遍历到一个节点该节点遍历次数就加一,最后所有奶牛都搜索完之后,检查每个节点的遍历次数,如果该节点的遍历次数等于奶牛数则 ...