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验证参数

谁要是敢用Map传参数,我喵喵就打死他相关推荐

  1. 获取map第一个的key和value_谁要是再敢用Map传参,我过去就是一JIO

    还记得上次我写过一篇关于实际项目代码分层和规划的文章<看完这篇,别人的开源项目结构应该能看懂了>, 在文尾处提到过一些注意事项,其中第一条就是: Contorller层参数传递建议不要使用 ...

  2. @modelattribute注解用postman测试怎么传参_谁要是再敢用Map传参,我过去就是一JIO...

    还记得上次我写过一篇关于实际项目代码分层和规划的文章<看完这篇,别人的开源项目结构应该能看懂了>, 在文尾处提到过一些注意事项,其中第一条就是: Contorller层参数传递建议不要使用 ...

  3. 接口向mapper传参数

    接口向mapper传递参数 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <sel ...

  4. java接收参数_javaWeb收传参数方式总结

    1.GET和POST请求,在传参方面有什么区别 GET传输的数据存储在URL上进行拼接 POST传输的数据存储在Requst Body(请求体)中 2.http请求中的Content-Type htt ...

  5. 前端传值后端接收不到_关于前端传参数,后台接收的问题

    1.通过ajax,示例: 传给后台的数据通过json封装起来,再用ajax将json传到后台,ajax是用到Jquery的ajax,在jsp先加入Jquery的引用 js传值的方法如下 functio ...

  6. java list namevaluepair_NameValuePair方式传参数

    今天工作中联调外部的一个接口用post方式传输,我按照文档封装参数成Jason字符串传入,但是对方一直接受参数为空,折腾了半天也没找到问题.很苦恼,检查代码都没有错误,可是为什么对方接受参数为空呢?然 ...

  7. java 通过Ajax前台传参数 并用 HttpURLConnection Post方式访问对外的接口

    前两天做项目遇到一个问题,就是在自己的项目中要去访问项目外部的接口,从自己的项目中传参数过去,通过调用 对方提供的接口去获取想要得到的数据!第一次接触到在自己项目中去访问和调用外部的资源,然后在网上去 ...

  8. 在Mybatis中使用万能的Map传参,实现增删改查

    在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择. Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就 ...

  9. pytest接口测试之fixture传参数request

    本文主要介绍了pytest接口测试之fixture传参数request的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前言 有的测试用例,需要依赖于某些特定的 ...

最新文章

  1. Linux的僵尸进程
  2. flash 入门课知识小结
  3. JavaScript和HTML实现的简单计算机
  4. html显示本地磁盘 图片,手把手教你为本地磁盘增添背景图片(图解)
  5. 《C#3.0 in a Nutshell ,3rd Edition》之序言篇
  6. 安装最新版本的ReSharper导致原生全局搜索工具的消失问题
  7. Bit-Z全球生态联盟暨韩国战略发布会即将开启
  8. WPF任务栏同步进度
  9. 您需要了解的所有有关System.gc()的信息
  10. OCP China Day 2021:开放计算十年,以全球协作打破创新边界
  11. Ural 1297 Palindrome(后缀数组+最长回文子串)
  12. Windows系统创建符号链接文件
  13. 51全志R58平台Android4.4下Camera的HAL层修改
  14. MVVM开发模式MVVM Light Toolkit
  15. 向日葵远控远程代码执行漏洞工具
  16. CS5211替代LT7211B参数特性与优势|DP转LVDS方案
  17. python scrapy第一弹--爬取好看的堆糖头像
  18. 解决memory leak问题
  19. Android——新大陆云平台篇
  20. fluent日志文件提交服务器计算,利用云服务器计算fluent

热门文章

  1. Algorithms Part 1-Question 5- Dijkstra's shortest-path-最短路径算法
  2. matlab中ode45函数的用法_带你理解Excel中COUNTIF函数的简单用法
  3. linux 下 pytorch 安装
  4. leetcode695:DFS 岛屿最大面积(C语言)
  5. TensorFlow基本原理,入门教程网址
  6. 开源软件公司易犯的 5 大错误,又该如何避免?
  7. Mybatis结合Oracle的foreach insert批量插入报错!
  8. CMS:文章管理之视图(6)
  9. python网络编程学习笔记(4):域名系统
  10. 设置ComboBox控件的提示内容.