问题描述

项目中需要一个拦截器用于拦截请求,在没有请求中生成requestId。然后写了一个配置类,这个类继承了 WebMvcConfigurationSupport类,重写了addInterceptors 方法,来实现拦截器的注册。正当一切顺利的时候,我发现我jackson的全局配置失效了。

该配置类的写法

@Configuration
public class MvcInterceptorConfig extends WebMvcConfigurationSupport {
@Resource
private RequestContextInterceptor requestContextInterceptor; @Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(requestContextInterceptor).addPathPatterns("/api/**");
super.addInterceptors(registry);
}
}

原因

后来通过一系列的搜索,发现别人也有和我一样的问题

第一篇文章可以参考这个: https://www.cnblogs.com/anemptycup/p/11313481.html。我意识到可能是我拦截器配置导致的问题。

资料上讲,自定义WebMvcConfigur之后,原有properties中的jackson配置会失效。所以必须在自定义实现类中再次对jackson的配置进行补充。查询资料的过程中,看到有的文章提到需要将注解@EnableWebMvc去掉。但是我们的项目中并不显式的包含这个注解,相信可能有部分人跟我一样在看到这个解决方案时并不知道如何对项目进行更改

解决

既然是因为自定义WebMvcConfigur导致的问题,那我不自定义WebMvcConfigur,有没有其它注册拦截器的方法呢? 显然是有的。

另一种注册拦截器的方法。写一个配置类,实现WebMvcConfigurer接口也可以实现注册拦截器

@Configuration
public class MvcInterceptorConfig implements WebMvcConfigurer {
@Resource
private RequestContextInterceptor requestContextInterceptor; @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(requestContextInterceptor)
.addPathPatterns("/api/**")
.excludePathPatterns("/static/**");
}
}

采用新的拦截器注册方法否,成功实现拦截器注册,和Jackson的全局配置。

拦截器配置类使用继承写法导致jackson的全局配置失效的更多相关文章

  1. SpringMVC 学习-拦截器 HandlerInterceptor 类

    一.拦截器 HandlerInterceptor 类的作用 SpringMVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理. 二.怎么使用呢? 1. ...

  2. LindAgile~缓存拦截器支持类的虚方法了

    写它的原因 之前写过一个缓存拦截器,主要在方法上添加CachingAspect特性之后,它的返回值就可以被缓存下来,下次访问时直接从缓存中返回结果,而它有一个前提,就是你的方法需要是一个接口方法,缓存 ...

  3. springboot @Configuration配置类里面使用@Value获取不到.yml配置文件属性的值

    之前一个项目里面分为很多子工程的那种结构,要求让我改成一个项目的结构.我这边手动将代码合并之后出现下面的这种问题,然后尝试进行用各种方式解决 Error creating bean with name ...

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

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

  5. [JavaWeb基础] 011.Struts2 配置拦截器

    在网页开发中有一个很重要的东西就是拦截器,就是在请求接收到的时候先到拦截器中进行一些逻辑处理,例如会话是否过期的验证等.在Struts2中我们可以编写一个拦截器的类,然后在struts.xml中简单配 ...

  6. springboot 入门八-自定义配置信息(编码、拦截器、静态资源等)

    若想实际自定义相关配置,只需要继承WebMvcConfigurerAdapter.WebMvcConfigurerAdapter定义些空方法用来重写项目需要用到的WebMvcConfigure实现.具 ...

  7. struts自定义拦截器配置

    配置自己的拦截器可以先参照下系统的拦截器是怎么配置的,首先打开struts-default.xml搜索下interceptor:系统里的拦截器有很多,拦截器都是放在堆栈里的,系统引用的是默认堆栈, & ...

  8. 初学Struts2-自定义拦截器及其配置

    自定义拦截器,首先新建一个继承自AbstractInterceptor类的类,然后重写intercept方法,代码如下 public class HelloInterceptor extends Ab ...

  9. Struts2拦截器配置

    1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AO ...

随机推荐

  1. Centos7安装pip或pip3

    1.使用Python2安装pip wget wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip- ...

  2. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  3. 安装centos6.10时,安装完成重启报错error 15,file not found

    今天在一台老式联想服务器上安装centos6.10操作系统,安装完成,重启时,出现报错 error 15, file not found...... 在百度上搜索到进grub编辑,可还是无法解决问题, ...

  4. HFS ~ Http File Server

    HFS ~ Http File Server官网:https://www.rejetto.com/hfs/ 官方下载地址:https://www.rejetto.com/hfs/hfs.exe

  5. 201871010109-胡欢欢《面向对象程序设计(java)》第四周学习总结会

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  6. luoguP4197:Peaks(Kruskal重构树+主席树)或者(点分树+离线)

    题意:有N座山,M条道路.山有山高,路有困难值(即点权和边权).现在Q次询问,每次给出(v,p),让求从v出发,只能结果边权<=p的边,问能够到达的山中,第K高的高度(从大到小排序). 思路:显 ...

  7. python基础语法16 面向对象3 组合,封装,访问限制机制,内置装饰器property

    组合: 夺命三问: 1.什么是组合? 组合指的是一个对象中,包含另一个或多个对象. 2.为什么要用组合? 减少代码的冗余. 3.如何使用组合? 耦合度: 耦: 莲藕 ---> 藕断丝连 - 耦合 ...

  8. Escape character is ‘^]’什么意思?怎么使用telnet

    在linux/unix下使用telnet(telnet ip 端口号)连接主机时提示“Escape character is '^]'.”,这是什么意思?“^”是Ctrl键的意思!1.这个提示的意思是 ...

  9. 01-赵志勇机器学习-Logistics_Regression-train

    Logistics Regression 二分类问题. 模型 线性模型 响应 sigmoid 损失函数(显示) 最小均方 优化方法 BGD 例子: #coding utf-8 import numpy ...

  10. MySQL 事务配置命令行操作和持久化

    MySQL 事务配置命令行操作和持久化 参考 MySQL 官方参考手册 提供 5.5 5.6 5.7 8.0 版本的参考手册 https://dev.mysql.com/doc/refman/5.5/ ...