处理器(也就是执行流程图上面的controller)执行逻辑

Posted 算顺网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理器(也就是执行流程图上面的controller)执行逻辑相关的知识,希望对你有一定的参考价值。

处理器继承自:AbstractController,MultiActionController

 

一、AbstractController

如上图,可以分析出AbstractController用的处理器适配器是SimpleControllerHandlerAdapter

 

具体Mycontroller里面的handleRequestInternal这个方法是怎么执行的,上图里面AbstractController类是继承了Controller接口,Controller这个接口里面有一个如下图handleRequest这个方法,AbstractController重写了handleRequest这个方法,handleRequest这个方法如下图最后一行代码有执行了handleRequestInternal这个方法,而MyController这个里面有重新了handleRequestInternal这个方法,所以,MyController里面的方法就执行了。

 

 

 

 

AbstractController限定请求提交方式

看一下这个类WebContentGenerator,WebContentGenerator这个类有一个supportedMethods这个属性,因为是继承过来的,所以MyController里面也有supportedMethods这个属性,那么在注册的时候就可以设置这个属性了,如下图:

 

 

 

二、MultiActionController(包括:InternalPathMethodNameResolver(默认),ParameterMethodNameResolver

之前的是下面这样写,如下

如上面的例子所示,一个MyController里面只能定义一个方法,而MultiActionController里面可以定义任意多个方法,只要返回ModelAndView就行:

 

springmvc.xml这样配置如下: 

 

 

ParameterMethodNameResolver用法如下:

 

 

方法名作为参数值出现的情况如下,也就是参数就是要执行的方法

 

以上是关于处理器(也就是执行流程图上面的controller)执行逻辑的主要内容,如果未能解决你的问题,请参考以下文章

springmvc执行流程

springmvc执行流程

Spring MVC注解Controller源码流程解析--HandlerAdapter执行流程--上

Mysql服务器处理客户端请求流程

《SpringMVC从入门到放肆》SpringMVC开发Controller的方法总结

node_egg项目大致运行流程