许多是否,反思一个框架的架构,主要涉及思路,感觉比仔细看代码要有用的多。
今天回顾一下SpringMvc框架的主要设计思路。
其实,SpringMvc的设计思路很简洁,就是利用普通对象来处理网络Http请求,当然,在servlet容器内部,还要借助标准定义的Servlet。SpringMvc的主要点就在于DispatchServlet,这个类负责拦截指定的请求类型,路径等,将其通过各种手段接收请求后,预处理请求,然后再调用一些普通的java对象的方法,具体的处理思路包括很多,包括,对请求路由到具体的对象的方法,对请求参数的处理,包括参数接收,转换,对普通对象方法的返回值的处理,包括映射具体的视图,返回流,返回json字符串,返回xml等等。
从request到response,响应的转换为了对普通对象的方法的传入参数,调用,返回返回值这三个步骤。
为了将一个请求映射到一个普通对象的方法调用,框架需要分析请求,如路径,请求类型,参数等等,根据分析的信息,来寻找具体的普通对象的方法,找到之后,框架开始模拟我们手工调用一个对象的方法,此时,框架需要解析出具体的方法入参,然后调用,调用完成之后,还要处理具体的返回值,根据不同的返回值,构成不同的处理逻辑。
总体而言,框架具体非常强大的扩展能力。
目前,基本的主题流程已经跟踪过代码了,大概花了25小时左右,感觉自己对SpringMvc有了整体的把握了,不同我感觉还要深入掌握这个框架,深刻理解它的设计思想。
原文地址:https://www.cnblogs.com/weiguangyue/p/9285962.html
时间: 2024-10-09 01:39:51