Spring MVC项目如何接收请求参数

如果使用DTO接受参数,需要创建的DTO有点多,如果使用Map接受参数又不明确。不知道该怎么办了

阅读 3.5k
5 个回答

除非确实需要动态参数,否则Map不可取
DTO多的话,可以考虑有没有重合的业务可以整合接口,有没有重复的dto可以使用同一个

首先Map一定是不可取的,如果公司中的Code Review比较严格时,这样写一定会被批评的。
使用实体类来接收参数的好处肉眼可见,你可能觉得这些实体类过多会很乱。实际上只要你根据某个规则,比如根据业务来分类,分别建package来归类。这个时候就算实体类再多也不会感到繁琐,在以后的修改和扩展的时候也会十分方便。
其次当字段不是很多的时候,你也可以考虑使用@ReponsePapram注解来接收参数从而替代用@ReponseBody的实体类的方式。

GET我就是用的MAP...
POST我一般是自己搞个专门放参数的
image.png

这就是一个规范问题,楼上两位说的也都很清楚,除此之外,DTO特别多的时候,就需要看字段是否有公用,可以把公用字段单独提出来作为一个mode,然后其他DTO继承这个类就可以了,这样可以少写很多字段;

共性的参数提取出来,但是推荐不要偷懒,因为如果只用一个DTO来做的话,就比如使用swagger,那么前端看到的无用参数就太多了。你还需要一个一个解释。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题