1.请求发起
2.中央调度器,把请求(some.do)交给了处理器的映射器。
映射器:实现了HandlerMapping接口的类叫做处理器的映射器。
映射器作用:根据请求找到对应的处理器对象(some.do–MyController类的对象)。
getApplicationContext().getBean(“some.do”);
3.中央调度器,把处理器执行链中的处理器对象(MyController)交给了处理器的适配器
适配器:实现了HandlerAdapter接口的类,叫做处理器的适配器
适配器作用:根据处理器类型,找到对应的适配器对象。由这个适配器对象才能执行处理器方法。 此处用的适配器设计模式。
框架中能处理请求的接口有很多(Controller接口),不同的开发人员可能实现不同的接口,怎么用一个统一方法,调用不同接口中的方法, 执行处理器的内容呢。用适配器解决这个问题
4.通过处理器的适配器对象,执行处理器方法的(MyController的handerRequest()),
5.中央调度器,调用视图解析器, 处理视图
视图解析器:实现了ViewResovler接口的类
视图解析器作用:创建视图的,视图在框架中实现了View的接口
doDispatch()
{
1. 调用getHandler():调用处理器的映射器
处理器映射器:
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
2. 调用getHanderAdapter():调用处理器的适配器
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
SimpleControllerHandlerAdapter是对应的Controller接口
3.通过适配器对象,执行处理器方法
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());