SpringBoot重写拦截器导致无法接收Put请求表单参数

有个项目,由于架构问题,开始没有重写拦截器,而在接口写了一大部分的时候(api是rest风格,主要使用get,post,put,delete,patch方法),发现有些功能需要在拦截器统一配置,于是才对拦截器重写,开始是发现swagger无法访问,放开资源后,就正常了,也没有对之前的接口进行复测,因为当时也没想到会引发这样的问题。突然有天,发现项目put请求的表单参数(@RequestParam)无法接收,而@RequestBody正常接收。而以前测试表单也是接收正常的,于是就怀疑是重写拦截器导致的问题,简单把整个拦截器及相关依赖注释掉,put请求正常。

 

于是找到如下方案,在启动类上加上注解@Import(FormContentFilter.class ),重启后问题解决,当然你也可以自己新建一个配置类(@Config)技术的还是你该注解。

//添加注解在主类上
@Import(FormContentFilter.class)
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 

//添加注解在配置类上,并确保能被Spring扫描到
@Configuration
@Import( FormContentFilter.class )
public class FormContentConfig {
}

由于时间不足,尚未对拦截器内部源码进行跟踪,只是找到解决问题的方法,没找到问题的源头,很是遗憾。同时也警示着,就算项目再紧,也提前做好公共基础配置的设计,不然后面隐藏bug带来的灾难,往往需要花上更多的时间去发现和弥补,防患于未然才是上策。

 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值