1、spring1.x配置方式

在spring boot1.x中,使用拦截器,一般进行如下配置:

@Configuration
public class AppConfig extends WebMvcConfigurerAdapter {@Resourceprivate FRInterceptor fRInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {//自定义拦截器,添加拦截路径和排除拦截路径 registry.addInterceptor(fRInterceptor).addPathPatterns("api/**").excludePathPatterns("api/login");}
}

但是在spring boot2.x中,WebMvcConfigurerAdapter被deprecated,虽然继承WebMvcConfigurerAdapter这个类虽然有此便利,但在Spring5.0里面已经deprecated了。

 官方文档也说了,WebMvcConfigurer接口现在已经有了默认的空白方法,所以在Springboot2.0(Spring5.0)下更好的做法还是implements WebMvcConfigurer

2、spring2.x配置方式

2.1拦截器统一管理

import javax.annotation.Resource;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import com.spring.pro.interceptor.FileUploadInterceptor;/*** @ClassName: WebConfig* @Description:* @author weiyb* @date 2018年5月7日 上午11:30:58*/
@Configuration
public class WebConfig implements WebMvcConfigurer {@Resourceprivate FileUploadInterceptor fileUploadInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 自定义拦截器,添加拦截路径和排除拦截路径registry.addInterceptor(fileUploadInterceptor).addPathPatterns("/**");}
}

2.2自定义拦截器

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;/*** 文件上传拦截器* @ClassName: FileUploadInterceptor* @Description:* @author weiyb* @date 2018年5月7日 上午11:51:53*/
@Component
public class FileUploadInterceptor implements HandlerInterceptor {/** 视图渲染之后的操作*/@Overridepublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {}/** 处理请求完成后视图渲染之前的处理操作*/@Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {}/** 进入controller层之前拦截请求*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {System.out.println("getContextPath:" + request.getContextPath());System.out.println("getServletPath:" + request.getServletPath());System.out.println("getRequestURI:" + request.getRequestURI());System.out.println("getRequestURL:" + request.getRequestURL());System.out.println("getRealPath:" + request.getSession().getServletContext().getRealPath("image"));return true;}}

spring boot 2.x 拦截器相关推荐

  1. Spring Boot 实现登录拦截器,这才是正确的姿势!!

    原文:https://blog.csdn.net/qq_27198345/article/details/111401610 对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,在Spr ...

  2. Spring Boot实战:拦截器与过滤器

    一.拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器.这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的.在分析两者的区别之前,我们先理解一下AOP的概念,A ...

  3. Spring Boot 过滤器与拦截器的使用及其区别 和过滤器怎么设置运行顺序

    过滤器 过滤器的定义 在客户端将请求发送到服务器端之前,拦截这些请求:在服务器端的响应返回给客户端之前,处理这些响应. 比如字符编码过滤器CharacterEncodingFilter,就是设置req ...

  4. Spring Boot笔记-设置拦截器为false时返回的Body

    以preHandle拦截器为例: @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse ...

  5. spring过滤器Filter 、 拦截器Interceptor 、 切片Aspect 详解

    springboot 过滤器Filter vs 拦截器Interceptor vs 切片Aspect 详解 1 前言 最近接触到了过滤器和拦截器,网上查了查资料,这里记录一下,这篇文章就来仔细剖析下过 ...

  6. Spring AOP原理及拦截器

    原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP将应用系统分为两部分,核心业务逻辑(Core bu ...

  7. spring 两次进入拦截器_过滤器和拦截器的 6 个区别,别再傻傻分不清了

    点击上方 肉眼品世界,选择 设为星标 深度价值体系传递 作者 :程序员内点事 来源 :toutiao.com/i6834310440495874563 毕竟这两种工具开发中用到的频率都相当高,应用起来 ...

  8. Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用

    转载自 https://www.cnblogs.com/EasonJim/p/7704740.html 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filt ...

  9. spring mvc中的拦截器

    本文说下spring MVC中的拦截器 文章目录 拦截器介绍 拦截器注入适配器 自定义拦截器 controller测试 测试结果 本文小结 拦截器介绍 拦截器是在servlet执行之前执行的程序(这里 ...

  10. Spring的一种拦截器SimpleUrlHandlerMapping

    spring的一种拦截器,用于在XML文件中配置以拦截url,它是以map映射的方式进行拦截.映射是从前台urls到具体后台的beans.同时支持到bean实例和bean名称的映射,后者要求非单实例控 ...

最新文章

  1. 使用面向 iOS 的本机插件扩展 PhoneGap
  2. 复习04统计学习方法(朴素贝叶斯算法Naive Bayes)---图片版
  3. 通过7个函数解密区块链(附代码)
  4. linux /etc/fstab 挂载列表 简介
  5. List<Map<String, Object>>——多层嵌套的数据结构
  6. mysql ehcache_MyBatis使用Ehcache作为二级缓存
  7. 网络原理往期考试题+部分详解+最终版
  8. XenServer 6.5实战系列之十三:图形界面安装Linux Redhat系统
  9. 【leetcode】667. Beautiful Arrangement II
  10. GIT上传代码Enumerating objects:类型报错解决,实测可用
  11. Java学习系列(十一)Java面向对象之I/O流(下)
  12. python3的配置文件类单例实现_单例模式的几种实现方式及对比
  13. MAC编译freetype
  14. Oracle用户密码过期策略
  15. 【深度学习21天学习挑战赛】备忘篇: from_tensor_slices的作用和用法
  16. Quality Assurance (质量保证)
  17. 阿龙的下拉菜单demo
  18. decorators 参数_Django中decorators装饰器的使用
  19. 微服务项目实战技术点汇总:“尚硅谷的谷粒在线教育”七、redis数据库缓存页面数据、使用NUXT框架搭建前台系统环境、前台系统页面、首页轮播图(banner数据显示)、首页热门课程,名师推荐
  20. 我喜欢计算机职业200字,爱玩电脑的我作文200字

热门文章

  1. 标准化、归一化等的适用范围
  2. 骨骼动画驱动理解, blender 驱动骨骼
  3. 地理总结(二)--我国华北华南华中等地区的划分
  4. 详解Linux帮助命令——help、--help、man、info
  5. 我们接了条预算100000000的广告!!!
  6. Flixel横板游戏制作教程(三)— AddingWeapons
  7. cookie 、localStorage 和 sessionStorage 区别
  8. riot账号服务器互通吗,云顶之弈手游和PC数据互通吗账号数据同步分析
  9. hive删除EXTERNAL外表
  10. docker CMD 命令