在此鉴于你已经了解过Spring的相关知识,简单描述一下Spring与Spring的关系
联系:
在框架的使用中,Spring类似于一个具有多种特性,也可以说是多种功能模块的应用平台,(特性就比如IoC,AOP,事务处理,持久化驱动等等),并且可以用来与其他一些优秀并流行的开源框架进行快速的整合。对于一个完整的WEB框架或应用平台来说,MVC模型的模块一定是必不可少的,而SpringMVC就是建立在Spring应用平台之上的MVC模型。
了解SpringMVC之前,首先要了解如何将IoC模块如何应用于WEB项目中:
以Tomcat为例,IoC容器通常在WEB容器初始化的时候就选择去载入。其中自然涉及到web.xml中的几个属性:
DispatcherServlet
用于分发请求,一般在WEB容器的初始化阶段就开始初始化context-param:
指定SpringIoC容器读取Bean定义的XML文件- ContextLoaderListener:
SpringMVC的启动类,负责完成IoC容器在WEB环境中的启动工作
对于ContextLoaderListener:
存在理由:为了在WEB容器中建立IoC容器
具体:实现了ServletContextListener
,提供了与Servlet生命周期相结合的回调,就类似于Servlet初始化与销毁的contextInitialized()
方法与contextDestory()
方法。
实际上IoC容器的载入过程由ContextLoader完成,其中分为两步:
- 在WEB容器中建立起双亲IoC容器
- 生成相应的
WebApplicationContext
并将其初始化,如果在上下文初始化过程中没有指定IoC容器,将使用默认的XmlWebApplicationContext
作为WEB环境中使用的IoC容器。