1.1. Classpath
project文件夹
在web.xml文件例如以下配置:
<!-- 配置spring mvc 的核心servlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 指定spring 以下配置的也就是默认值 --> <param-value>classpath:config/spring-servlet.xml</param-value> </init-param> <!-- 配置随server启动自己主动初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <!-- 过滤全部后缀名为.do的请求 --> <url-pattern>*.do</url-pattern> </servlet-mapping> |
1.2. Classpath*
project文件夹跟上面一样
Web.xml文件里例如以下配置:
<!-- 配置spring mvc 的核心servlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 指定spring 以下配置的也就是默认值 --> <param-value>classpath*:config/spring-servlet.xml</param-value> </init-param> <!-- 配置随server启动自己主动初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <!-- 过滤全部后缀名为.do的请求 --> <url-pattern>*.do</url-pattern> </servlet-mapping> |
1.3. Classpath是什么
设置Classpath的目的。在于告诉Java运行环境,在哪些文件夹下能够找到您所要运行的Java程序所须要的类或者包。
classpath是指 WEB-INF文件夹下的classes文件夹 。将web应用公布到server时,会将src文件夹下全部的类编译后的class文件和资源文件放入到WEB-INF文件夹下的classes文件夹。
1.4. Classpath和classpath*的差别
classpath:仅仅会到你的class路径中查找找文件。
classpath*:不仅包括class路径。还包括jar文件里(class路径)进行查找。
1) 前者仅仅会从第一个classpath中载入,而后者会从全部的classpath中载入 。
2) 假设要载入的资源。 不在当前ClassLoader的路径里,那么用classpath:前缀是找不到的, 这样的情况下就须要使用classpath*:前缀。
3) 在多个classpath中存在同名资源,都须要载入, 那么用classpath:仅仅会载入第一个,这样的情况下也须要用classpath*:前缀。
4) 用classpath*:须要遍历全部的classpath。所以载入速度是非常慢的,因此,在规划的时候,应该尽可能规划好资源文件所在的路径。尽量避免使用classpath*。