SpringMVC:web.xml 中 contextConfigLocation 作用

继续写一点后端服务。

web.xml 中有这样的配置:

1
2
3
4
5
6
7
8
9
<!-- 配置spring核心监听器,默认会以 /WEB-INF/applicationContext.xml作为配置文件 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- contextConfigLocation参数用来指定Spring的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param>

ContextLoaderListener的作用就是启动Web容器时,读取在contextConfigLocation中定义的xml文件,自动装配ApplicationContext的配置信息,并产生WebApplicationContext对象,然后将这个对象放置在ServletContext的属性里,这样我们只要得到Servlet就可以得到WebApplicationContext对象,并利用这个对象访问spring容器管理的bean。
简而言之,为项目提供了spring支持,初始化了Ioc容器。

如果没有指定,它会默认加载 /WEB-INF/ 下的 applicationContext.xml。如果已指定,就不会去加载 /WEB-INF/ 下的 applicationContext.xml,而是加载指定的配置文件。

可以配置多个xml,以逗号作为分隔符。

  • classpath:只会到你的class路径中查找找文件
  • classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找

还支持这样的通配符:

1
<param-value>classpath*:**/spring-*.xml</param-value>

更多阅读: