classpath就是代表 /WEB-INF /classes/ 这个路径(所有src目录下面的java、xml、properties等文件编译后都会在此)
常用的场景:
在SSH架构中,配置Spring的上下文环境:
<!-- Spring Configures -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
里面的classpath:applicationContext.xml
也可以使用 /WEB-INF /classes/ applicationContext.xml 代替
classpath 和 classpath* 区别:
classpath:只会到你的class路径中查找找文件;只能加载找到的第一个文件
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找;可加载多个相同的文件;
classpath:App?-Beans.xml
说明:匹配一个字符,例如 App1-Beans.xml 、 App2-Beans.xml
classpath:user/*/Base-Beans.xml
说明:匹配零个或多个字符串(只针对名称,不匹配目录分隔符等),例如:user/a/Base-Beans.xml 、 user/b/Base-Beans.xml ,但是不匹配 user/Base-Beans.xml
classpath:user/**/Base-Beans.xml
说明:匹配路径中的零个或多个目录,例如:user/a/ab/abc/Base-Beans.xml,同时也能匹配 user/Base-Beans.xml
classpath:*/-Beans.xml
说明:表示在所有的类路径中查找和加载文件名以“-Beans.xml”结尾的配置文件,但重复的文件名只加载其中一个,视加载顺序决定
classpath*:user/*/-Beans.xml
classpath*:*/-Beans.xml
说明:“classpath*:”表示加载多个资源文件,即使重名也会被加载,比如app1.jar中有一个config-Beans.xml,app2.jar中也有一个config-Beans.xml,这个时候,两个都会加载。