springmvc 接口参数类型大致:
- RequestHeader
- RequestParam
- RequestBody
- PathVariable
public Result createMessage(@RequestBody CreateRequest request)
之前body方式传递数据。
public Result createMessage(CreateRequest request)
默认@RequestParam
,每个属性都是一个RequestParam
类型参数
需要注意的是,
- formData与body方式不能同时使用
- @RequestBody在同一方法中只能出现一次。
特殊情况1:上传文件的接口,FileRequest
默认是@RequestParam
,这里是不能使用@RequestBody
的
@RequestMapping(method = RequestMethod.POST, produces = Constants.PRODUCES)
public Result createFile(FileRequest request,
@RequestParam(value = "file",required = false) MultipartFile file)
@PostMapping(value="/zip/up")
public Result uploadZip(@RequestParam("file") MultipartFile file,
@RequestParam List<String> props,
@RequestParam(required = false) Boolean strict )
特殊情况2:feign传递对象时使用@RequestBody
public Result sendMsgList(@RequestBody MessageRequest request)
这里用RequestParam
也是可以的,但是比如时间参数,就涉及到格式问题;用RequestBody
,在属性上定义好格式,这里的转换spring就默默的完成了。