-
Spring mv 关键词
a.dispatchServlet 处理中心
b.handlerMapping url和控制器的映射
c.handlerAdapter 控制器执行的适配器
d.ViewResolver 视图分解器
c. view具体解析试图
d.HandlerExceptionReslover 异常扑捉起
e.HandlerInteceptor 拦截器 -
体系机构 和执行流程
可以看源码当值的doDispatch()
总结 自我描述Springmvc 执行过程 1.dispatchSerlvet - --调用gentHandler() —> 2.HandlerMapping (多个实现类循环便利返回HandlerExecutionChain) - ---- getHandlerAdapter(多个实现类循环便利返回HandlerApater)–> 3.HandlerApater — handler(具体业务)返回ModelAndView->4.ViewResolver(找到对应的view)–> 5.view(视图解析匹配) 返回
(还有两个 HandlerExcepetionReslover 异常 和 HandlerInterceptor过滤器(往下看))
重点
可以看看HandlerExecutionChain
public class HandlerExecutionChain {
HandlerInterceptor; //过滤器 再去执行 handler()之前会走这个 例里有三个方法
1. peHandle(中间执行) 2.postHandle(最先执行) 3.afterHandle(最后执行)
}
- 关键词 详解
a. handlerMapping详解
其中mvc 中url 路径与control对象的映射 dispatchServlet 就是基于这个组件来进行寻找对应的control 找不到就会报错
NOT Found mapping 的异常
接口方法 getHandler() 返回 HandlerExecutionChain 实现子类如下图 最后返回的是
b.
4.注解配置
- 细节
在spring mv.config 很多适配器什么都是不需要配置的 默认是有有的(DispatcherServlet.properties)
6.实现一个简单 Spring-mvc 框架
1.初始化的时候 基于bean 获取 所有controller层的方法 放在一个 key value 内存里面方便调用
2.根据url 去调用的时候 从内存里找 通过代理的方式去获取对应方法