B站链接https://www.bilibili.com/read/cv5480572

Map传参数?为什么不能?

哈哈我指的是Controller层不能用Map传参数,如果在你身边有些人用Map传参数的话,请锤死他。

有些刚学会Java Servlet的同学或者Springboot的同学可能要问了,为什么不可以呢?老子就是要用Map,Map传参数一直用一直爽,一直爽啊一直爽。

可能刚学的同学会写这样的代码

@RestController@RequestMapping("/user")public class IndexController {    // 获取App首页内容    @PostMapping("/login")    public ResponseWrapper getIndexContent( @RequestBody Map<String, Object> paramMap ) {             if (!paramMap.containsKey("username")) {            return xxx;        }        if (!paramMap.containsKey("password")) {            return xxx;        }    }}

这样的代码在Controller层使用Map来接收前端参数是非常不对滴,虽然你用着方便,也不用把参数封装成对象,但是你写完了,当别人要接手你的工作的时候,他就不知道这个接口有什么样的参数,如果你对你公司的同事有仇,我非常建议你这样写,但是写完提交之后要快点跑,他们会拿着键盘过来打你哦。

第二,现在的很多接口文档框架就不能用,比如Swagger,你要是使用Map,你告诉我怎么用,在现在前后端分离的大趋势下,也不能说是大趋势,已经是定论了,你这么写,Swagger怎么搞,难道一个个手写吗?岂不是类似,要是很多接口有相同的参数,你一个个复制过去吗?那这样前端小姐姐肯定会催死你。

 第三,@NotNull是什么东西?你要是使用Map,你就得一个个参数判断是不是空,我写你妈MB奶奶个腿,如果此时封装成对象之后就可以使用@NotNull一行代码来判断是不是空,或者其他注解什么的,这不是更方便?

所以总结下来

   1:维护不方便

   2:无法使用接口框架

   3:无法使用@NotNull验证参数

 

©著作权归作者所有:来自51CTO博客作者卡哇伊大喵的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【实战案例】Ajax请求第三方接口数据利用模板引擎渲染天气预报页
  2. 方圆-罗辑思维Go语言微服务改造实践
  3. 快递100电商快递地图轨迹推送服务API接口案例代码
  4. 快递100查询地图轨迹API接口案例代码
  5. 快递100快递实时快递查询接口API案例代码
  6. 快递100快递信息订阅推送API接口案例代码
  7. java中的内部类内部接口详解
  8. java中Comparable和Comparator的区别
  9. java 8 stream reduce详解和误区

随机推荐

  1. Android常用功能实例 如IMEI号
  2. Android静默安装相关
  3. Android(安卓)学习路线总结
  4. android dialog 不变暗
  5. Android Desigin Library
  6. android设置属性
  7. 【30篇突击 android】源码统计七
  8. BlueStacks将Android程序运行在Windows上
  9. android 逐帧动画
  10. Android开发学习之Gallery和GridView浅析