web.xml中,classpath与classpath*的理解和区别

WEB应用中的classpath是什么

JavaEE中classpath与系统环境变量中的classpath不一样,WEB应用中的classpath专指项目WEB-INF/classes和WEB-INF/lib,web容器在启动时会对WEB-INF/classes和WEB-INF/lib目录下的class文件、配置文件以及jar文件进行加载,当然,配置文件的加载是根据web.xml中的配置(显示配置了文件路径或者配置了其它类而在类内部进行加载配置文件)来的,web容器并不会自动加载WEB-INF/classes下的配置文件。

classpath:与classpath*:有何区别

一般在web.xml、spring xml等配置文件中会有如下配置:

	<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:spring-security.xml,
            classpath*:spring-datasource.xml,
            classpath*:spring-hibernate.xml,
            classpath*:spring-task.xml,
            classpath*:spring-ehcache.xml
            classpath*:spring-activiti.xml
        </param-value>
 	</context-param>

【classpath:】此配置告诉web容器去classpath(WEB-INF/classes和WEB-INF/lib)中去加载指定名称的配置文件,若是有同名文件,则只会加载一个。

【classpath*:】此配置告诉web容器去classpath(WEB-INF/classes和WEB-INF/lib)中去加载指定名称的配置文件,若是有同名文件则会全部加载。

附录

参考资料:

  1. http://blog.csdn.net/andyelvis/article/details/6719996(tomcat的classpath)
  2. http://blog.csdn.net/kkdelta/article/details/5507799(classpath:与classpath*:的区别)

————————————————
此文转载,仅做记录。
原文链接:https://blog.csdn.net/u014137486/article/details/54381341/

猜你喜欢

转载自blog.csdn.net/weixin_42670408/article/details/106916442