Spring中自定义拦截器的使用

 更新时间:2022年02月14日 16:12:45   作者:Lequal  
大家好,本篇文章主要讲的是Spring中自定义拦截器的使用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

1、创建自定义拦截器类(UserTokenInterceptor)并实现HandlerInterceptor 接口,再重写方法,代码如下:

public class UserTokenInterceptor implements HandlerInterceptor {
 
    /**
     * @description 访问Controller之前执行
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.info("进入拦截器啦、、");
        return true; // true即可放行,false则不放行
    }
 
    /**
     * @description 请求访问Controller之后,渲染视图之前
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
 
    }
 
    /**
     * @description 请求访问Controller之后,渲染视图之后
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 
    }
}

2、配置Web拦截器(WebMvcConfig)并实现Spring的WebMvcConfigurer接口

在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated(弃用)。官方推荐直接实现WebMvcConfigurer或者直接继承WebMvcConfigurationSupport,方式一实现WebMvcConfigurer接口(推荐)

 复写addInterceptors方法,添加自己的拦截器

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
 
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册拦截器
        registry.addInterceptor(getUserTokenInterceptor()).addPathPatterns("/index/session");
        // 一定要加
        WebMvcConfigurer.super.addInterceptors(registry);
    }
 
 
    //    @Bean
    public UserTokenInterceptor getUserTokenInterceptor() {
        return new UserTokenInterceptor();
    }
 
}

3、编写测试Controller

@RestController
@RequestMapping("/index")
public class IndexController {
 
    @Deprecated
    @GetMapping("/session")
    public Object getSession(HttpServletRequest request) {
        HttpSession session = request.getSession();
        session.setAttribute("name", "lequal");
        session.setMaxInactiveInterval(3600);
        String name = (String) session.getAttribute("name");
        System.out.println("获取的名字是:" + name);
        return name;
    }
}

4、访问URL地址

 如果preHandle方法中return false的话浏览器访问是看不到返回的内容的,因为被拦截住了,就相当于卡在那里了。

到此这篇关于Spring中自定义拦截器的使用的文章就介绍到这了,更多相关Spring自定义拦截器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Properties操作如何保存到属性文件

    Properties操作如何保存到属性文件

    这篇文章主要介绍了Properties操作保存到属性文件的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 一文带你看懂Android动画的实现原理

    一文带你看懂Android动画的实现原理

    动画是 Android 应用程序中重要的交互特性,ndroid 提供了多种动画效果,包括平移、缩放、旋转和透明度等,它们可以通过代码或 XML 来实现,本文将介绍 Android 动画的原理和实现方法,并提供一些示例,需要的朋友可以参考下
    2023-07-07
  • idea编写java程序详细图文步骤

    idea编写java程序详细图文步骤

    这篇文章主要给大家介绍了关于idea编写java程序的详细图文步骤,IDEA是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • java中的String定义的字面量最大长度是多少

    java中的String定义的字面量最大长度是多少

    这篇文章主要介绍了java中的String定义的字面量最大长度是多少,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java8如何利用Lambda快速生成map、多层嵌套map

    Java8如何利用Lambda快速生成map、多层嵌套map

    这篇文章主要介绍了Java8如何利用Lambda快速生成map、多层嵌套map问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Java 照片对比功能的实现

    Java 照片对比功能的实现

    这篇文章主要介绍了Java 照片比对功能实现类的示例代码,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-12-12
  • Java黑科技之通过Google Java Style 文件配置IDEA和Ecplise代码风格

    Java黑科技之通过Google Java Style 文件配置IDEA和Ecplise代码风格

    在日常开发中,多人团队协作开发一个项目是很常见的,特别是大公司,这就会涉及到多人在一个工程上开发代码.无规矩不成方圆,一个好的代码风格,更加有利于团队协作,减少代码冲突,提高代码可阅读性,美观性.本文就带着大家仔细研究这个黑科技 ,需要的朋友可以参考下
    2021-05-05
  • spring mvc4中相关注解的详细讲解教程

    spring mvc4中相关注解的详细讲解教程

    这篇文章主要给大家介绍了关于spring mvc4中相关注解的相关资料,其中详细介绍了关于@Controller、@RequestMapping、@RathVariable、@RequestParam及@RequestBody等等注解的相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • 辨析Java中的String与StringBuffer及StringBuilder字符串类

    辨析Java中的String与StringBuffer及StringBuilder字符串类

    这里将为大家来辨析Java中的String与StringBuffer及StringBuilder字符串类型,通常来说StringBuilder的性能更加,需要的朋友可以参考下
    2016-05-05
  • SpringCloud如何创建一个服务提供者provider

    SpringCloud如何创建一个服务提供者provider

    这篇文章主要介绍了SpringCloud如何创建一个服务提供者provider,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论