美文网首页
spring框架流程图

spring框架流程图

作者: 草小孟 | 来源:发表于2023-06-29 13:41 被阅读0次

processDispatchResult -> this.render(mv, request, response); -> view.render()

RequestMappingHandlerAdapter 实现了BeanFactory. 就是系统启动的AppliconContext extends BeanFacotry. 它加载所有配置扫描config, 注解等. implents InitializingBean. afterPropertiesSet() 在创建bean后, 初始化的属性. 在afterPropertiesSet里它将配置放到resolves里, 等到调用doServlet是调用.


image.png image.png

请求 --> DispatcherServlet --> 处理器映射器(HandlerMapping)--> 处理器适配器(HandlerAdapter)--> 处理器(Controller)--> 处理器方法执行 --> 处理器方法返回值处理(HandlerMethodReturnValueHandler)--> 视图解析器(ViewResolver)--> 视图(View)--> 响应

servlet init   -> HttpServletBean.initServletBean -> FrameworkServlet .initWebApplicationContext -> DispacherServlet.onFresh  
![image.png](https://img.haomeiwen.com/i1789421/6312921a56811b02.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
`init` 方法是在 Servlet 生命周期中的一次性初始化方法,它在 Servlet 容器加载 Servlet 时被调用,通常只执行一次。

当 Servlet 容器启动时,会为每个 Servlet 类实例化一个对象,并调用其 `init` 方法进行初始化。这个过程只会发生一次,即使有多个请求同时到达该 Servlet。

一旦 Servlet 实例完成初始化,它会一直保持在内存中,供后续请求使用。每个请求都会创建一个新的线程来处理,并调用 Servlet 的 `service` 方法来处理请求。在处理完请求后,线程不会销毁 Servlet 实例,而是继续等待下一个请求到达。

因此,`init` 方法只会执行一次,用于初始化 Servlet。而每个请求都会调用 `service` 方法来处理具体的请求逻辑。

AbstractHandlerMethodMapping在加载它之后, 会将所有getmapping等的类注册到


image.png

applicationcontextaware vs @autowired 暂时没看出区别, 可能只有看底层的装配才有可能分析. 反正aware就是注入个所需类一般是

相关文章

网友评论

      本文标题:spring框架流程图

      本文链接:https://www.haomeiwen.com/subject/ingaydtx.html