2、listener監聽器開始
<!--spring的配置-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--spring bean配置文件加載-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/applicationContext*.xml</param-value>
</context-param>
來到ContextLoaderListener監聽,開始初始化並創建一個根上下文叫ApplicationContext,它是用來加載或者卸載spring管理的beans的,監聽器會將它放進ServletContext中key為"org.springframework.web.context.WebApplicationContext.ROOT"的attribute中
3、 servlet開始初始化(filter先不講),DispatcherServlet是springMVC的入口
<!--spring MVC的配置-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
DispatcherServlet創建自己的上下文,叫WebApplicationContext,並綁定到根上下文,以他為父親,WebApplicationContext管理它里面的handlers,controllers,它存放在"org.springframework.web.servlet.FrameworkServlet.CONTEXT."+(servletname)的attribute中,開始加載他的配置文件
4、關於springMVC配置文件名稱及路徑問題
(1)不指定,則默認需要在/WEB-INF/路徑下創建一個文件名為[servlet-name]加后綴"-servlet"的配置文件,上述配置文件為
springmvc-servlet.xml,默認路徑為/WEB-INF/springmvc-servlet.xml
(2)指定文件名及路徑有兩種情況
a、放在src下,則指定路徑寫為classpath:conf/springmvc-servlet.xml,這里classpath指發布目錄中的WEB-INF/classes,conf在src下一級文件夾,xml名可自己指定
b、放在WEB-INF文件夾下但自己指定xml名,則要寫明路徑為/WEB-INF/xxx.xml
接下來是springmvc單獨的配置文件