(参考博客的总结笔记)
1.当请求到达前端控制器时,他就会调用一堆处理器映射器来需找处理器(controller),映射器就返回一个执行链(一堆拦截器以及找到的处理器)
2.前端控制器会调用处理器适配器去执行处理器并返回modlandview给前端控制器。
这里有一些疑问。
1.处理器映射器有几个呢?寻找处理器会选取哪个呢?
答:一般spring会默认注册一堆。他会依次遍历这些处理器映射器(根据每个映射器的规则查找),直到找到为止。
2.适配器有几个呢?为什么要通过适配器来执行处理器?
答:适配器spring默认也会注册一堆。
为什么要通过适配器来执行处理器。如果不用适配器来执行处理器,那么前端控制器在执行处理器要做大量的判断,这个处理器到底是哪个类型,然后调用。如果我们要扩展处理器就要修改源码。违背了开闭原则且不利于扩展。
怎么解决呢,就用到了适配器,为每种处理器提供一个适配器实例,没到要扩展处理器式只需添加一个适配器实例即可。