源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性 (5)

仔细看allowEmpty变量,针对Long类型的参数,我们扩展数据绑定时,该变量设置的是false,表示不接受空值,试验中我们传的值是空串,那么这里的条件分支判断就必须对空串转换成数值,执行Long.valueOf("")结果报出运行时异常java.lang.NumberFormatException,告知客户端参数不对,这是期望的结果。

总结

本篇以实际的研发排错过程为出发点,刚开始自己也以为@ApiImplicitParam对@RequestParam的required属性的有侵入性,觉得诧异便深入源码论证自己的想法,经阅读源码后发现事实并不是这样,是刚开始我们对required的理解有误。既然required的作用非常有限,那么肯定能找到通用的解决方案避免手动写代码对所有参数进行为空判断,这些解决一个问题后,发现新的问题,再继续解决,最终得到的结果,分析若有不详尽之处,请指正,谢谢。

专注Java高并发、分布式架构,更多技术干货分享与心得,请关注公众号:Java架构社区
可以扫左边二维码添加好友,邀请你加入Java架构社区微信群共同探讨技术

Java架构社区

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfyzp.html