码迷,mamicode.com
首页 > 移动开发 > 详细

Spring:MVC启动时的WebApplicationContext的关系

时间:2020-06-25 17:17:46      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:文章   service   app   怎么   实现   编程   webapp   patch   control   

在整合了SpringMVC的应用中,其实存在两个上下文容器,即两个WebApplicationContext,这两个容器是什么关系呢?且看分析。

1、Servlet启动顺序是先调用listener的监听方法,再调用servlet的init()方法。
2、Spring中存在一个ContextLoaderListener,这个Listener监听web项目的启动,项目启动时,会先调用ContextLoaderListener中初始化方法,初始化一个rootWebApplicationContext并放到ServletContext中。技术图片
3、然后Servlet初始化的时候会调用DispatcherServlet的init()方法(该方法在父类的父类HttpServletBean中),这时会先从ServletContext中拿到之前初始化的根容器,作为当前容器的父容器,然后初始化当前容器。技术图片
4、父子容器的效果是子容器可以读到父容器中的bean,而父容器不能读到子容器的bean。一般父容器中存储Service、Dao等bean,而子容器中存储Controller、ViewResolver等bean,这种分层的行为不仅使得bean很好管理,而且实现MVC模块的解耦,做到了MVC可插拔的效果,非常值得我们学习。

后续补充:这种是以前SpringMVC时的顺序,现在SpringBoot貌似没有分父子容器,都是一个容器,后续研究完Springboot怎么干的再在本文章下补充。不过这种源码的编程思想还是很值得我们学习的。

Spring:MVC启动时的WebApplicationContext的关系

标签:文章   service   app   怎么   实现   编程   webapp   patch   control   

原文地址:https://www.cnblogs.com/fcb-it/p/13192119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!