加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

springMVC源码分析--HandlerMethodReturnValueHandler返回值解析

发布时间:2020-12-13 21:18:36 所属栏目:PHP教程 来源:网络整理
导读:HandlerMethodReturnValueHandler是用于对Controller中函数履行的返回值进行处理操作的,springMVC提供了多个HandlerMethodReturnValueHandler的实现类。 接口HandlerMethodReturnValueHandler定义的抽象方法还是比较简单的,源码以下: (1)supportsReturn

HandlerMethodReturnValueHandler是用于对Controller中函数履行的返回值进行处理操作的,springMVC提供了多个HandlerMethodReturnValueHandler的实现类。


接口HandlerMethodReturnValueHandler定义的抽象方法还是比较简单的,源码以下:

(1)supportsReturnType用于判断是不是支持对返回值的处理。

(2)handleReturnValue实现对返回值的处理操作。

public interface HandlerMethodReturnValueHandler {

	//判断是不是支持
	boolean supportsReturnType(MethodParameter returnType);

	
	//处理返回值操作
	void handleReturnValue(Object returnValue,MethodParameter returnType,ModelAndViewContainer mavContainer,NativeWebRequest webRequest) throws Exception;

}

springMVC中对返回值的操作流程以下:履行进程是在ServletInvocableHandlerMethod的invokeAndHandle中

public void invokeAndHandle(ServletWebRequest webRequest,Object... providedArgs) throws Exception {
		//处理操作的返回值
		Object returnValue = invokeForRequest(webRequest,mavContainer,providedArgs);
		.......
		//对返回值进行处理操作
		this.returnValueHandlers.handleReturnValue(
					returnValue,getReturnValueType(returnValue),webRequest);
		.........
	}

具体实现是在HandlerMethodReturnValueHandlerComposite中,HandlerMethodReturnValueHandlerComposite中包括了所有springMVC提供的返回值处理器。

@Override
	public void handleReturnValue(Object returnValue,NativeWebRequest webRequest) throws Exception {
		//选择可以处理返回值的处理器
		HandlerMe                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读