注解@RequestMapping中的produces,consumes属性详解前⾔
整理项⽬的时候,突然发现注解@RequestMapping存在以下两个属性:
1.String[] consumes() default {};
2.String[] produces() default {};
灰常好奇这两个属性是做什么的,于是到⽹上看了下资料以及属性原本的英⽂注释。
两个属性的解释及参考例⼦
① 属性produces:指定返回值类型,并且可以设置返回值类型和返回值的字符编码;
代码例⼦参考如下:
/**属性produces="application/json"时,返回json数据*/
@Controller
json值的类型有哪些@RequestMapping(value ="/{path}", method = RequestMethod.GET, produces="application/json")
public Object permissionGet(@PathVariable String path, @MyParameter PermissionTransRQ permissionTransRQ){
//实现⾃⼰的逻辑调⽤
return null;
}
/**属性produces="MediaType.APPLICATION_JSON_VALUE;charset=utf-8"时,设置返回数据的字符编码为utf-8*/
@Controller
@RequestMapping(value ="/{path}", method = RequestMethod.GET, produces="MediaType.APPLICATION_JSON_VALUE;charset=utf-8") public Object permissionGet(@PathVariable String path, @MyParameter PermissionTransRQ permissionTransRQ){
//实现⾃⼰的逻辑调⽤
return null;
}
特别说明:produces="application/json"和注解@ResponseBody是⼀样的效果,使⽤了注解其实可以不使⽤该属性了。
② 属性consumes: 指定处理请求当中的提交内容类型(Content-Type):application/json, text/html等;
代码例⼦参考如下:
@Controller
@RequestMapping(value ="/{path}", method = RequestMethod.POST, consumes="application/json")
public Object permissionPost(@PathVariable String path, @RequestBody PermissionTransRQ permissionTransRQ){
//实现⾃⼰的逻辑调⽤
return null;
}
总结
produces:指定返回值类型,除了设置返回值类型外,还可以设定返回值的字符编码;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。