拦截器配置类使用继承写法导致jackson的全局配置…
2019-08-27 07:07:46来源:博客园 阅读 ()
拦截器配置类使用继承写法导致jackson的全局配置失效
问题描述
项目中需要一个拦截器用于拦截请求,在没有请求中生成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的全局配置。
原文链接:https://www.cnblogs.com/mufeng3421/p/11415366.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java自学-数组 Arrays
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
- Maven安装与配置 2020-06-09
- Spring Boot 实现配置文件加解密原理 2020-06-08
- 聊聊 OAuth 2.0 的 token expire_in 使用 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash