spring MVC初始化过程学习笔记1
如果有错误请指正~
1.springmvc容器和spring的关系?
1.1 spring是个容器,主要是管理bean,不需要servlet容器就可以启动,而springMVC实现了servlet规范,需要servlet容器才能运行起来.比如tomcat,jetty等;
1.2 springMVC核心是实现类是DispatcherServlet,继承了FrameworkServlet,实现了HttpServletBean,ApplicationContextAware接口,实现了ApplicationContextAware接口 就基本上具备了获取spring容器的属性.可以得到spring容器管理的bean;
1.3 springMVC 本质也是个BeanFactory,是在spring的基础上进行servlet的封装,换句话说,它本身也是个spring ,只不过是为了Servle,而不只是为了bean,本质是个WebApplicationContext.
2.ContextLoaderListener 和springMVC的关系?
参考ContextLoaderListener启动流程 https://blog.csdn.net/MrZhangXL/article/details/78587426
区别: http://www.guoweiwei.com/2014/07/contextloaderlistener-and-spring-mvc-dispatcherservlet.html
个人理解是:ContextLoaderListener 也是实现了servlet规范,初始化启动的是根上下文,每个springMVC启动的是自己的上下文,根上下文里面的bean共享给所有的SpringMVC,作为他们的parent属性,结合在项目中的应用,根据不同的url路径,做不同的拦截,比如有的需要登录,有的不需要登录,可以配制不同的springMVC容器,做不同的处理.配置了ContextLoaderListener的话,只需要加载一次bean,就可以被所有的springMVC容器公用.
3.需要扩展的地方..
断点的时候发现了ApplicationcContextFacade类,是管理springMVC名称的地方,这个是tomcat里面的代码...层层嵌套,看来也要知道tomcat启动和执行流程了...
最后,附上一张DispatcherServlet大致初始化过程

spring MVC初始化过程学习笔记1的更多相关文章
- spring mvc 初步接触学习笔记
1.使用maven导入spring mvc web 的jar 包 最新语句 <dependency> <groupId>org.springframework</grou ...
- Spring MVC的一些学习笔记-入门配置和HttpMessageConverter
1.初步配置 [1]. 配置web.xml以及在web.xml中配置DispatcherServlet: <context-param> <param-name>context ...
- Spring mvc 初始化过程
1.DispatcherServlet:获取servlet的name 2.XmlWebApplicationContext:获取contentConfigLocation的xml名称和namespac ...
- Spring MVC启动过程(1):ContextLoaderListener初始化
此文来自https://my.oschina.net/pkpk1234/blog/61971 (写的特别好)故引来借鉴 Spring MVC启动过程 以Tomcat为例,想在Web容器中使用Spirn ...
- Spring Cloud微服务学习笔记
Spring Cloud微服务学习笔记 SOA->Dubbo 微服务架构->Spring Cloud提供了一个一站式的微服务解决方案 第一部分 微服务架构 1 互联网应用架构发展 那些迫使 ...
- MVC缓存OutPutCache学习笔记 (二) 缓存及时化VaryByCustom
<MVC缓存OutPutCache学习笔记 (一) 参数配置> 本篇来介绍如何使用 VaryByCustom参数来实现缓存的及时化.. 根据数据改变来及时使客户端缓存过期并更新.. 首先更 ...
- spring MVC 运行过程
以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置: 1.修改web.xml, 2.添加servlet定义.编写servletname-servlet.xml( serv ...
- Spring实战第八章学习笔记————使用Spring Web Flow
Spring实战第八章学习笔记----使用Spring Web Flow Spring Web Flow是一个Web框架,它适用于元素按规定流程运行的程序. 其实我们可以使用任何WEB框架写流程化的应 ...
- Spring实战第一章学习笔记
Spring实战第一章学习笔记 Java开发的简化 为了降低Java开发的复杂性,Spring采取了以下四种策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面 ...
随机推荐
- [转]SQL数据库查询到的汉字字段是乱码
使用英文版SQL数据库查询到的汉字字段是乱码的解决方案 2007-12-04 14:55:45 标签:函数 SQL 数据库 乱码 排序规则 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ...
- for循环计算li的个数
今天有一段代码 在ie6下面显示 我检查了一下代码,发现每for循环一次,就会重新计算li的个数,会拖慢运行速度,所以改成以下代码,ie6就正常了
- junit中线程需要注意的问题
Junit主线程执行完毕后,就会结束进程,不关注是否有其他线程在运行.当Junit运行完毕后,如果其他线程还没有执行完毕,那么不会再执行. 使用CountDownLatch,保证启动的线程运行结束后, ...
- vultr上 windows使用pptp拨号来实现冗余双网关的解决方案
rasdial是拨号程序,pptpvpn是网卡拨号名称,后面跟的是帐号和密码.pptpvpn见下图:就是提前创建好一个PPTP的拨号连接 上面是启动时候的计划任务,那么万一拨号中断,要继续重拨还需要做 ...
- MySQL 之 MySQL数据库的优化
服务器物理硬件的优化 在挑选硬件服务器时,我们应该从下面几个方面着重对MySQL服务器的硬件配置进行优化,也就是说将项目中的资金着重投入到如下几处: 1.磁盘寻道能力(磁盘I/O),我们现在用的都是S ...
- js四则运算增强功能
目录 背景 具体代码 背景 项目中用到浮点数,Int. 在 js中 Number类型比较古怪, 加上牵涉到财务软件, 前台js实时运算等. 有时候会出现精确度的问题 , 公共方法中有好事者写的方法. ...
- 第9课 基于范围的for循环
1. 基于范围的for循环(range-based for) (1)语法:for(decl : coll){//statement} ①decl用于声明元素及类型,如int elem或auto ele ...
- [java] 屏蔽ie浏览器中F1帮助
实现某一功能时需要屏蔽IE浏览器中的F1,F2快捷键. 百度后发现如下代码 var jq$ = jQuery.noConflict(); //防止$符号与其他的冲突 jq$(document).rea ...
- ES6,变量,函数-参数,结构赋值
变量 var 1.可以重复声明. 无法限制修改-, 没有块级作用域 let不能重复声明,变量-可以修改,块级作const不能重复声明,常量-不能修改,块级作 函数——箭头函数function 名字() ...
- <spark> ~/spark/conf/spark-default.conf 配置文件
因为看到我参考的Hadoop/spark集群搭建的文档中的都没有对 /spark-default.conf 的配置 合理地对 /spark-default.conf 进行配置,能够提高执行效率 -- ...