5、SpringMVC中Controller返回json转换的源
2019-06-02 本文已影响0人
那谁319
- 在之前的文章中提到AnnotationDrivenBeanDefinitionParser.parse(参数)执行逻辑,其中有一项是注册RequestMappingHandlerAdapter的bean定义到DefaultListableBeanFactory对象中。
RequestMappingHandlerAdapter注册bean定义源码片段

- 可以看到在装载bean定义时指定了消息转换器。
AnnotationDrivenBeanDefinitionParser.getMessageConverters执行逻辑

- 获取配置文件中配置的消息转换器,
- 如果没有配置的化,json的默认转换器为jackson
处理请求过程(响应部分处理)
HandlerMethodReturnValueHandlerComposite.handleReturnValue执行逻辑

- 选择合适的响应处理解析器(RequestResponseBodyMethodProcessor)
- 执行handleReturnValue方法
RequestResponseBodyMethodProcessor.selectHandler执行逻辑

RequestResponseBodyMethodProcessor.handleReturnValue执行逻辑

- 从方法命名可以看到使用转换器