还记得上次我写过一篇关于实际项目代码分层和规划的文章《看完这篇,别人的开源项目结构应该能看懂了》, 在文尾处提到过一些注意事项,其中第一条就是:
- Contorller层参数传递建议不要使用HashMap,推荐使用数据模型定义
私信里竟然有很多小伙伴提问说,为什么不能这样做?
我心里暗自寻思:难道这么做的小伙伴都没有被同事捶吗?(滑稽)
得嘞,今天咱们就掰扯掰扯这件事,这是实际写代码时常忽略的一个问题
是不是有人也这么写过?
我自己曾经接手过一个前人留下来的老项目,拿到代码,导入IDEA的那一刻,我哭出了声。
因为它的Controller
层代码都是类似这样写的:
@RestController
@RequestMapping("/index")
public class IndexController {
// 获取App首页内容
@PostMapping("/getIndexContent")
public ResponseWrapper getIndexContent( @RequestBody Map<String, Object> paramMap ) {
ResponseWrapper res = new ResponseWrapper();
// 下面开始做传参有效性的校验
if (!paramMap.containsKey("article_id")) {
res.setCode(500);
res.setMsg("缺少 article_id 信息");
return res;
}
if (!paramMap.containsKey("page")) {
res.setCode(500);
res.setMsg("缺少 page 信息");
return res;
}
if (!paramMap.containsKey("size&