一.context-param和init-param的区别
他们相当于全局变量和局部变量,一个在全局作用域里生效,一个在局部作用域里生效
监听器创建spring容器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
监听器会随着web容器的创建而创建,销毁而销毁,当web项目启动时,spring容器也就创建了
三.spring容器加载配置文件的位置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/applicationContext.xml</param-value>
</context-param>
为什么配置了全局的上下文路径,spring容器加载的配置文件就会根据上下文路径改变位置,(ContextLoaderListener加载位置详细解析),很显然,spring容器创建时会获取web.xml配置的上下文路径,当web.xml没配置时,就会使用spring容器默认的路径.