之前在 Spring Boot 从 2.0 升级到 2.2 的时候这个配置出现过,这里转载一个相关文章,记录下这个乱码。

----------------------------

@RequestMapping(value = “/produces”, produces = “application/json”):
表示将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/json”时即可匹配;
@RequestMapping(value = “/produces”, produces = “application/xml”):
表示将生产xml格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/xml”时即可匹配。
此种方式相对使用@RequestMapping的“headers = “Accept=application/json””更能表明你的目的。
当你有如下Accept头:
①Accept:text/html,application/xml,application/json
将按照如下顺序进行produces的匹配 ①text/html ②application/xml ③application/json
②Accept:application/xml;q=0.5,application/json;q=0.9,text/html
将按照如下顺序进行produces的匹配 ①text/html ②application/json ③application/xml
q参数为媒体类型的质量因子,越大则优先权越高(从0到1)
③Accept:/,text/*,text/html
将按照如下顺序进行produces的匹配 ①text/html ②text/* ③/
即匹配规则为:最明确的优先匹配。