`

classpath: 与classpath*:的区别

 
阅读更多
首先 classpath是指 WEB-INF文件夹下的classes目录

解释classes含义:
1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml
2.存放模板文件 eg.actionerror.ftl
3.存放class文件 对应的是项目开发时的src目录编译文件
总结:这是一个定位资源的入口

如果你知道开发过程中有这么一句话:惯例大于配置 那么也许你会改变你的想法

对于第二个问题
这个涉及的是lib和classes下文件访问优先级的问题: lib>classes
对于性能的影响应该不在这个范畴

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

<param-value>classpath:applicationContext-*.xml</param-value>  


或者引用其子目录下的文件,如

<param-value>classpath:context/conf/controller.xml</param-value>  


classpath*的使用:当项目中有多个classpath路径,并同时加载多个classpath路径下(此种情况多数不会遇到)的文件,*就发挥了作用,如果不加*,则表示仅仅加载第一个classpath路径,代码片段:

<param-value>classpath*:context/conf/controller*.xml</param-value>  


另外:
"**/" 表示的是任意目录;
"**/applicationContext-*.xml"  表示任意目录下的以"applicationContext-"开头的XML文件。 
程序部署到tomcat后,src目录下的配置文件会和class文件一样,自动copy到应用的 WEB-INF/classes目录下
classpath:与classpath*:的区别在于,

前者只会从第一个classpath中加载,而
后者会从所有的classpath中加载 

如果要加载的资源,
不在当前ClassLoader的路径里,那么用classpath:前缀是找不到的,
这种情况下就需要使用classpath*:前缀

在多个classpath中存在同名资源,都需要加载,
那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前缀

注意:
用classpath*:需要遍历所有的classpath,所以加载速度是很慢的,因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*

参考:http://perfy315.iteye.com/blog/2009258
分享到:
评论

相关推荐

    浅析Spring配置中的classpath:与classpath*:的区别

    Spring 配置中的classpath:与classpath*:的区别 Spring 配置中的classpath:与classpath*:的区别是 Spring 框架中一个常见的问题。本文主要介绍了这两种路径的区别、使用场景及注意事项,以帮助读者更好地理解和使用...

    清华大学《Java程序设计》实验指导书

    - **CLASSPATH的作用与设置:** CLASSPATH环境变量用于告知JVM去哪里查找用户自定义的类库。同样地,其设置方式也随操作系统不同而有所区别。在Windows环境下,同样通过环境变量设置;而在Unix环境下,则需在命令行...

    分享Java知识库

    - **应用场景**:当需要同时考虑项目内部配置文件与外部依赖库中配置文件的情况时,这种加载方式更为灵活。 - **示例**:同样假设配置文件名为`springmvc.xml`,但这次它可能存在于多个地方(例如项目内和某个jar...

    springboot框架

    springboot mybatis management: security: enabled: false spring: profiles: active: local application: name: hh-store ... multipart: ... config: classpath:log4j2-${spring.profiles.active}.yml

    Tomcat Using CLASSPATH:报错和启动成功无法访问情况解决方案

    Using CLASSPATH: /www/apache-tomcat-10.0.0-M3-src/bin/bootstrap.jar:/www/apache-tomcat-10.0.0-M3-src/bin/tomcat-juli.jar touch: cannot touch ‘/www/apache-tomcat-10.0.0-M3-src/logs/catalina.out’: No ...

    如何加载jar包中的spring配置文件

    在标准的项目结构中,配置文件通常位于项目的`src/main/resources`目录下,这样Spring可以在类路径(ClassPath)上找到它们。然而,当配置文件位于jar包内部时,我们需要调整加载方式。 **步骤1:配置文件的组织** ...

    加载jar包中的spring配置文件

    3. **`classpath*:`前缀**:这个前缀与`classpath:`类似,但有一个重要的区别。`classpath*:`不仅会查找类路径下的指定资源,还会递归地查找所有jar包和目录下的匹配文件。这意味着如果你有多个相同命名的配置文件...

    Classpath Variable 解决办法

    4. **类加载顺序**:类加载器会按照Classpath中路径的顺序查找类,先找到的类会优先加载,可能导致覆盖或错误。 5. **使用`Class.getResource()`或`ClassLoader.getResource()`**:这两个方法可以从类路径中加载...

    springboot+mybatis+内置tomcat示例.rar

    spring.webflux.static-path-pattern =classpath:/static/** #数据库配置 #spring.datasource.url =jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC #spring.datasource.username =root #...

    java基础知识学习资料

    - **起源与发展**:Java 语言最初由 Sun 公司的 James Gosling 等人在 1991 年开发,当时命名为 Oak,目的是为了控制有线电视交换盒和个人数字助理 (PDA) 等设备上的微处理器。到了 1994 年,Oak 语言被正式更名为 ...

    jdk环境变量配置.txt

    它不仅能够确保开发者能够在命令行下顺利执行Java相关的编译与运行命令,还能够为IDE(Integrated Development Environment,集成开发环境)提供必要的环境支持。本文将详细介绍如何配置JDK环境变量,并解释其各个...

    java classpath 理解

    1. **查看 Classpath 的方法**: - 在命令行中输入 `java -XshowSettings:properties -version`。 - 或者,可以通过 `javac -verbose` 来查看编译器使用的 classpath。 2. **具体操作**: - 使用 `echo %...

    关于设置JAVA环境变量的若干问题.doc

    2. **CLASSPATH(classpath)**: - **定义**:CLASSPATH变量用于告知Java虚拟机(JVM)去哪里查找用户自定义的类和库。 - **作用**:当Java程序试图加载一个类时,它会在当前目录以及CLASSPATH变量中定义的路径...

    自学如何使用框架的工具classpath

    2. **设置`classpath`**:你可以通过`-cp`或`-classpath`命令行选项来设置`classpath`,或者在`JAVA_HOME/bin`目录下的`java.exe`启动脚本中修改`CLASSPATH`环境变量。 3. **路径分隔符**:在Windows上,路径之间...

    Linux环境下安装JDK

    #### 一、下载与准备 **知识点1:选择合适的JDK版本** - 在Linux环境下安装JDK之前,首先需要根据自己的系统版本(如32位或64位)以及操作系统类型(如CentOS、Ubuntu等)选择合适的JDK版本进行下载。 **知识点2...

    实验指导书(新).doc

    1. **独立思考与编程**:鼓励学生独立思考,而不是照搬指导书中的代码。这有助于培养解决问题的能力。 2. **IDE的高效利用**:推荐使用Eclipse等集成开发环境(IDE),并充分利用其提供的代码提示/补全等功能,提高...

    jdk环境变量配置

    4. **测试Classpath:** 创建一个简单的`.java`文件,并尝试在命令行中使用`javac`编译它,再使用`java`命令运行编译后的`.class`文件,如果没有报错,则表示`Classpath`配置成功。 #### 四、注意事项 1. **环境...

    JAVA开发PWS平台1.07

    set classpath=.;;JDK安装目录lib ools.jar;;%classpath% ******COPY上述文件并修改******** 如果是NT,在环境变量下照上面的配置文件需增加同样的配置信息。 注意: 1、必须安装JavaSDK开发包。 2、将...

Global site tag (gtag.js) - Google Analytics