记SpringBoot的一个请求参数合并的小坑

一个form-data格式的post接口,用户反馈api调用不成功,查询日志发现一个参数名传成了xxx,xxx的格式,本来应该是xxx。最后发现他在query参数和body参数中同时传了这个参数。

测试发现Springboot中,如果body和query参数中都传了同名字符串类型参数,会把它们合并,用英文逗号连接。而int、long类型则不会合并。

springboot代码如下

@RestController
@RequestMapping("/api/monitor")
public class MonitorController {
    @PostMapping("/ok")
    @ResponseBody
    public String ok(@RequestParam String a, @RequestParam Long b) {
        System.out.println(a);
        System.out.println(b);
        return "ok";
    }
}

请求如下

curl --location --request POST 'http://127.0.0.1:8080/api/monitor/ok?a=xxx&b=1234' \
--form 'a="xxx"' \
--form 'b="1234"'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用SpringBoot结合Quartz进行开发时,可能会遇到以下一些坑: 1. 数据库表的创建问题:在使用Quartz时,需要创建一些数据库表来存储任务信息。如果使用SpringBoot自带的JPA来创建表,可能会出现一些问题,比如表结构不符合Quartz的要求等。解决方法可以是手动创建表,或者使用Quartz提供的SQL脚本。 2. 配置文件的问题:需要在配置文件中配置Quartz的相关信息,如数据源、JobFactory等。需要注意的是,SpringBoot的配置文件可能会与Quartz的配置文件产生冲突,需要进行调整。 3. Job的实现问题:在编写Job时,需要继承Quartz提供的Job接口,并实现execute方法。需要注意的是,Job需要以无参构造函数为入口,否则可能会导致无法正确创建Job实例。 4. 任务调度的问题:在使用Quartz进行任务调度时,需要注意一些细节,比如任务的执行时间、任务的重复执行等。另外,需要注意任务的并发性问题,避免出现多个相同任务同时执行的情况。 5. 日志输出问题:在使用Quartz进行任务调度时,可能会需要输出一些日志信息。需要注意的是,SpringBoot默认使用Logback作为日志框架,而Quartz使用的是Log4j。需要进行相应的配置,避免日志输出不正常的情况。 总的来说,结合SpringBoot和Quartz进行开发可以大大简化开发流程,并提高开发效率。但同样也需要注意一些细节问题,避免出现不必要的错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值