原理:
返回值解析器
返回值处理器先判断是否支持这种类型的返回值
- 如果支持在调用返回值处理器handleReturnValue进行处理
- RequestRespnseBodyMethodProcessor可以处理返回值标了@ResponseBody注解的:
- 利用MessageConverters进行处理,将数据写为json
- 内容协商(浏览器默认会以请求头的方式告诉服务器他能接收什么样的内容类型)
- 服务器最终根据自己自身的能力,决定服务器能生产出什么样的内容类型的数据
- Springmvc会挨个遍历所有容器底层的HttpMessageConverter,看谁能处理
- 利用MappingJackson2HttpMessageConverter 可以将对象写为json
- 利用MappingJackson2HttpMessageConverter 将对象转为json在写出去
- 利用MessageConverters进行处理,将数据写为json