tomcat中spring容器和springmvc容器的创建时机

2022-02-14  本文已影响0人  M_lear

tomcat可以理解为两部分:

  1. Connector(默认基于NIO网络模型)
  2. Container(Servlet容器)

tomcat为每个web应用创建一个ServletContext,spring实现了ServletContextListener并配置在web.xml,tomcat创建ServletContext后会调用上下文监听器的contextInitialized方法,spring就是在这里创建spring容器的(管理applicationContext.xml配置的bean),并把spring容器放到ServletContext中(ServletContext持有一个哈希表,HttpSession也是,ServletRequest也是)。

spring mvc可以理解为两部分:

  1. DispatcherServlet(前端控制器,实现了HttpServlet)
  2. spring mvc容器

tomcat会根据web.xml的配置和请求来延迟加载所有的servlet,加载spring mvc的DispatcherServlet时,会调用它的init方法,spring mvc在这个init方法中创建spring mvc容器(管理spring-mvc.xml里配置的bean),并从ServletContext拿到spring容器作为自己的父容器。
所以Controller bean可以装配Service bean和Dao bean,反之不行。

上一篇 下一篇

猜你喜欢

热点阅读