赞
踩
只需在类方法上面responseBody就可以。
执行完这个方法后,得到返回值,进行一些返回值安全判断后。
1.首先调用了这个方法:
stepover --》stepinto
2.来到真正的处理方法中:
首先,选择一个对应的handler
返回值处理器会判断返回值处理器是否支持处理该类型返回值,支持就处理。
拓展:根据supportsReturnType 查看到返回值支持以下类型
view
ResponseEntity
StreamingResponseBody
HttpEntity
HttpHeaders
Callable
DeferredResult
ListenableFuture
CompletionStage
WebAsyncTask
hasMethodAnnotation(ModelAttribute.class) 被此注解标注的方法也可以被处理
被ResponseBody.class标注的方法返回值可被处理
etc.....
被@ResponseBody标注的被次处理器处理 (requestresponsebodymethodprocessor)
找到对应处理器后执行该方法:
步入:
使用消息转换器进行写出操作。步入该方法-》
首先对返回值的类型进行一系列判断,
都不是则需要判断媒体类型,与浏览器进行内容协商
获得浏览器支持显示的内容类型
这是所有converter:
每种messageConverter支持的返回值类型都不一样。
最终无论你是什么类型遇到最后一种直接转为json
调用objectWriter
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。