Tomcat&Jetty在启动时给每个Web应用创建一个全局的上下文环境,这个上下文就是ServletContext,其为后面的Spring容器提供宿主环境。

Tomcat&Jetty在启动过程中触发容器初始化事件,Spring的ContextLoaderListener会监听到这个事件,它的contextInitialized方法会被调用,在这个方法中,Spring会初始化全局的Spring根容器,这个就是Spring的IoC容器,IoC容器初始化完毕后,Spring将其存储到ServletContext中,便于以后来获取。

Tomcat&Jetty在启动过程中还会扫描Servlet,一个Web应用中的Servlet可以有多个,以SpringMVC中的DispatcherServlet为例,这个Servlet实际上是一个标准的前端控制器,用以转发、匹配、处理每个Servlet请求。

Servlet一般会延迟加载,当第一个请求达到时,Tomcat&Jetty发现DispatcherServlet还没有被实例化,就调用DispatcherServlet的init方法,DispatcherServlet在初始化的时候会建立自己的容器,叫做SpringMVC 容器,用来持有Spring MVC相关的Bean。同时,Spring MVC还会通过ServletContext拿到Spring根容器,并将Spring根容器设为SpringMVC容器的父容器,请注意,Spring MVC容器可以访问父容器中的Bean,但是父容器不能访问子容器的Bean, 也就是说Spring根容器不能访问SpringMVC容器里的Bean。说的通俗点就是,在Controller里可以访问Service对象,但是在Service里不可以访问Controller对象。

SpringMVC容器和Spring容器相关推荐

  1. servlet容器,web容器,spring容器,springmvc容器的区别

    这个理解我可以通过一个http的页面请求来说明. web容器中有servlet容器,spring项目部署后存在spring容器.其中spring控制service层和dao层的bean对象以及cont ...

  2. 【spring】在servlet中注入spring的bean,servlet容器和spring容器

    一.Servlet容器 Servlet的整个生命周期好象都是由Servlet容器来处理的. 如果把它硬放到Spring容器中去创建,Servlet对象是可被Spring容器建出来,但Servlet容器 ...

  3. java spring 容器_java – Spring容器实现

    我继续学习Spring,很难弄清楚ApplicationContext的实现方式.我是独立的J2EE应用程序,我对Web *或Portlet *实现不感兴趣. 您能否向我提供可能性的简要列表(如果不清 ...

  4. Spring容器 SpringMVC容器 web容器的关系

    说到spring和springmvc,其实有很多工作好多年的人也分不清他们有什么区别,如果你问他项目里用的什么MVC技术,他会说我们用的spring和mybatis,或者spring和hibernat ...

  5. spring容器和SpringMVC容器的区别

    说起spring容器和SpringMVC容器,很多刚接触spring框架的同志都有点懵,甚至是一头雾水,分不清楚两者的关系和区别,包括本人也是,因此还在网上找个不少资料.这俩容器呢虽然有必然的联系,但 ...

  6. Spring Boot教程(7) – 直观地理解Spring容器

    在你学习Spring之前,你肯定听说过"控制反转"."依赖注入"."上下文"等名词,伴随着这些名词的,是一些冗长晦涩的解释,这些解释并没有什 ...

  7. 请简述什么是spring的ioc和di_小编Spring是什么、spring容器、IOC和DI

    1.Spring (1)Spring是什么? 是一个轻量级的.用来简化企业级应用开发的开发框架. 注: a.简化开发: Spring对常用的api做了简化,比如,使用Spring jdbc来访问数据库 ...

  8. Spring 容器简介

    1.美图 2.Spring 容器简介 Spring容器,我们常用的就是ApplicationContext,容器本身是存放Bean和Bean之间的依赖关系的,那么容器的生命周期是什么概念呢? 我们可以 ...

  9. Spring容器和Spring应用上下文的理解

    1. 什么是Spring容器?作用是什么? 1.1 什么是Spring容器? Spring容器称为IOC容器,即:控制反转 应用程序里不用再过问对象的创建和管理对象之间的依赖关系了,都让IOC容器给代 ...

最新文章

  1. mysql从另一张获取数据的方法
  2. 如何评价马云和马斯克在世界人工智能大会的对话?
  3. Cascade R-CNN的一些记录
  4. log4j配置文件_Mybatis对log4j的支持及常用标签-Mybatis(6)
  5. adb linux 权限更改,使用命令chmod修改android文件权限
  6. git rebase 命令 常用_git命令之 git rebase 常用
  7. C#中Monitor和Lock的用法区别
  8. NotificationManager: notifyAsUser: tag=null, id=6, user=UserHandle{0}
  9. Angular之ngx-permissions安装入门
  10. 一文搞定Python正则表达式
  11. hadoop入门学习教程--DKHadoop完整安装步骤
  12. 体操冠军江钰源:妈妈你不要去讨饭了
  13. 安装ansible自动运维工具
  14. 容器技术Docker K8s 51 容器镜像服务(ACR)详解-进阶
  15. udev   ksm
  16. 连接linux服务器工具
  17. html页面怎么加入qq群,qq群申请
  18. 常用邮箱的SMTP、POP3域名及其端口号
  19. python借助OpenCC实现中文繁体转简体
  20. HZNUOJ 2977 宝可梦决战 种族并查集

热门文章

  1. 再见丑陋的 Swagger,这个API神器界面更炫酷,逼格更高,体验更好!
  2. RabbitMQ负载均衡(2)——HAProxy
  3. Github霸榜月余,原来是阿里技术官的千亿级并发系统设计手册上线了
  4. IO 密集型服务 性能优化实战记录
  5. AV1挑起的Codec之战
  6. IBM Cloud Video工程师Scott Grizzle谈流媒体协议和Codec
  7. 董海冰:2018风云再起 ,期待AV1、AI和AR
  8. iphone如何使用CoreNFC
  9. 大剑无锋之数据库的范式【面试推荐】
  10. leetcode 123. Best Time to Buy and Sell Stock III | 123. 买卖股票的最佳时机 III(总结DP 模型套路)