SpringMVC的工作流程很重要,而在实际开发中我们会用注解进行开发,比如使用@Controller来标注控制器,使用@RequestMapping来映射URL请求到具体的处理函数,而其背后的运行流程其实更加重要。SpringMVC的设计体现出软件开发中非常重要的架构设计原则的应用:“关注点分离”和”单一职责“。
在复习SpringMVC的运行流程时,对HandlerMapper和HandlerAdapter的职能产生了疑惑,这里对两者的区别做一个记录。未来有机会再补上SpringMVC的完整运行流程。

HandlerMapper & HandlerAdapter的区别:
HandlerMapper抽象了请求URL到请求处理器之间的映射,而HandlerAdapter用于封装对请求处理器的真正调用。打个比方讲,当某个客户请求到达时,DispatcherServlet会询问HandlerMapper哪个请求处理器能处理,然后找到支持该请求处理器的HandlerAdapter,然后将该请求处理器的调用交给该HandlerAdapter完成。这个例子简单地描述了DispatcherServlet处理请求工作的主流程,可以看出,DispatcherServlet所做的事情很简单,可以认为仅仅是一个主流程,而无需关心底层细节。而这里面很重要的两个底层细节: 请求到请求处理器的映射关系,请求处理器如何处理请求

本文探讨SpringMVC的工作流程,强调关注点分离和单一职责原则。核心组件HandlerMapping负责URL到处理器的映射,而HandlerAdapter则封装处理器的调用。在请求处理过程中,HandlerMapping确定合适的处理器,HandlerAdapter执行处理器的逻辑,两者分工明确,共同实现SpringMVC的高效运行。
最低0.47元/天 解锁文章
3449

被折叠的 条评论
为什么被折叠?



