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的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面 ...
随机推荐
- python常用模块: random模块, time模块, sys模块, os模块, 序列化模块
一. random模块 import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...
- Linux 下 MQ 的安装
在WebSphere MQ 7.1版本以前,同时只能有一个产品的安装实例,在UNIX和Linux系统上,/usr/lib,/usr/bin和/usr/include目录下会增加一些软连接,也指向了这个 ...
- 获取SQL数据库表空间结构
if exists(select 1 from tempdb..sysobjects where id=object_id('tempdb..#tabName') and xtype='u')drop ...
- 安装 dubbo
Dubbo的介绍: 是一个java版的RPC框架,由阿里巴巴开发并使用,结合zookeeper,实现流动计算架构完成资源调度和治理的工作 dubbo管控台可以对注册到zookeeper注册中心的服务或 ...
- jdbc连接池&改进dbUtil成C3P0Util
一.jdbc连接池 1.连接池的存在理由 前面介绍的dbUtils工具类虽然实现了一个对jdbc的简单封装.但它依旧采取从驱动管理获取连接 (DriverManager.getConnection ...
- alt.js 使用教程
1.action : import alt from "../alt.js"; class DemoActions{ constructor() { this.generateAc ...
- insert into table 插入多条数据
方法1: insert into `ttt` select '001','语文' union all select '002','数学' union all select '003','英语'; 方法 ...
- Java - 30 Java 网络编程
Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和接 ...
- android:windowSoftInputMode属性;界面关闭后软键盘不隐藏的解决方法;
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置 stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activit ...
- centos7安装LNMP与Laravel遇到的一些小问题
安装LNMP 第一次安装 yum update CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装 安装mySQL时,mysqld: error ...