首页 > 其他分享 >spring boot 拦截器

spring boot 拦截器

时间:2022-12-13 10:25:12浏览次数:49  
标签:拦截器 spring boot springframework import servlet public

spring boot 使用拦截器
1.创建拦截器类,继承HandlerInterceptor
2.注册拦截器,指定拦截规则

spring framework 中的拦截器类需要继承与HandlerInterceptor,spring boot也是一致的

package com.tons.intercept;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;

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

@Slf4j
public class RecordIntercept implements HandlerInterceptor {

    /*
      request 请求对象
      response 响应对象
      handler 请求处理器,可以强转成HandlerMethod使用(可获取处理方法的相关信息)。
    */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 获取路由
        String remoteAddr = request.getRemoteAddr();
        // 获取访问路径 http:localhost:80/ 后面的url部分
        String url = request.getRequestURI();
        // 打印
        log.debug("{}访问了[{}]",remoteAddr,url);
        // 返回true 放行,false不放行
        return true;
    }
}

注册拦截器,指定拦截规则

package com.tons.config;

import com.tons.intercept.PowerIntercept;
import com.tons.intercept.RecordIntercept;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.Arrays;
import java.util.List;

/**
 * 配置拦截器
 */
@Configuration
public class InterceptConfig implements WebMvcConfigurer {
    private static final List<String> STATIC_PATH = Arrays.asList("/","/index","/css/**","/js/**","/img/**","/media/**","/vendors/**","/element-ui/**","/temp/**","/public/**","/json/**","/favicon.ico","/error");

    /**
     * 配置拦截器
     * @param registry 拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        WebMvcConfigurer.super.addInterceptors(registry);
        //addPathPatterns 拦截路径
        //excludePathPatterns 不拦截路径
        // /**代表当前目录下所有资源(包含其内部子资源)
        registry.addInterceptor(new RecordIntercept()).addPathPatterns("/**").excludePathPatterns(STATIC_PATH);
    }
}

标签:拦截器,spring,boot,springframework,import,servlet,public
From: https://www.cnblogs.com/heirem/p/16977823.html

相关文章

  • SpringBoot引入外部jar包,并打包到项目jar包中
    SpringBoot引入外部jar包,并打包到项目jar包中在网上下载需要的jar包,在项目中新建文件夹将jar包放进去通过File->ProjectStructure引入选中jar包加载成功后,ja......
  • Springboot多数据源使用示例
    1、配置文件spring.datasource.url=jdbc:mysql://198.168.1.1:3306/user?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=true&t......
  • springboot 简单设置mysql用户名密码加密
     如何将yml文件中暴露的数据库用户名和密码由明文改为密文,提高安全性。个人觉得是最简单的方式实现yml代码,用户名密码使用文章后面提供的加密算法或者自行寻找方法spr......
  • SpringBoot 自动装配的原理分析
    关于SpringBoot的自动装配功能,相信是每一个Java程序员天天都会用到的一个功能,但是它究竟是如何实现的呢?今天阿粉来带大家看一下。自动装配案例首先我们通过一个案例......
  • springMvc4-第一个spring mvc项目
    一个SpringMVC的项目如何创建?请看这里。代码编辑器:IntellijIDEA请提前在电脑上配置好自己的tomcat!该文属于小白教程,适合初学者。1创建SpringMVC项目第一步,点击新建项目......
  • springMvc32-原生apiSpring MVC过滤器-HiddenHttpMethodFilter
    浏览器form​​表单​​只支持GET与POST请求,而DELETE、PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET、POST、PUT与DELETE......
  • spring mvc环境之静态资源放行(十二)
     方法一:引入mvc命名空间,会先经过自定义的Convertor<!--通过mvc:resources设置静态资源,这样servlet就会处理这些静态资源,而不通过控制器设置不过滤内容,比如:css,js......
  • SpringBoot常用注解
    @SpringBootApplication定义在main方法入口类,用于启动springboot应用项目@EnableAutoConfiguration让springboot根据类路径中的jar包依赖当前项目进行配置@ImportRes......
  • react-spring
    推荐一个动画库,阿里的antd-mobilev5也在使用这个库,这个库有良好的特性,推荐给大家react-spring官方网站做的也很优雅 ......
  • Spring Boot + Freemarker 中的弯弯绕!
    昨天说手把手教大家整一个代码自动生成工具,用到了Freemarker,结果有不少小伙伴表示对Freemarker不熟悉,这不,松哥赶紧整一个SpringBoot+Freemarker的教程出来,和大家分享......