`

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*:"的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    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 ...

    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开发PWS平台1.07

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

    AAPT: error: resource attr/** (aka com.**.app:attr/**) not found.

    问题记录 记录项目中的一个问题,不知什么时候,运行项目会出现这个错误: 解决方法 buildscript { repositories { ... classpath 'com.android.tools.build:gradle:3.6.2' } } 反思 项目出现问题

    成功解决Unable to resolve dependency、classpath等所有有关环境配置的问题

    (第一次写文章,我经验也不足,根据自己的理解来向大家解释一下) 先说一说今天被折磨一整天的感悟: 当项目导入、运行爆红时,一个劲百度出现的错误和解决方案,可能不是最先做的事。 加深对于项目运行过程的理解...

    MyBatis3.4参考文档中文版.pdf

    要使用 MyBatis,只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。如果使用 Maven 来构建项目,则需将相应的依赖项添加到 pom.xml 文件中。 MyBatis 的配置主要包括: * properties:用于配置 MyBatis 的...

    Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的

    Java 环境配置与设置 JAVA_HOME, CLASSPATH, PATH 的目的 Java 环境配置是 Java 开发的基础,我们需要正确地配置 JAVA_HOME, CLASSPATH, PATH 等环境变量,以便正确地编译和运行 Java 程序。在本节中,我们将详细地...

    spring源代码

    Resource[] resources = resolver.getResources("classpath*:META-INF/INDEX.LIST"); Assert.assertTrue(resources.length &gt; 1); //将加载多个模式匹配的Resource resources = resolver.getResources(...

    capsule-runtime-classpath:通过系统属性添加到类路径的 caplet

    java -Dcaplet.runtime.classpath=dependency.jar -jar capsule-runtime-classpath.jar your-capsule.jar Maven神器: repositories { jcenter() } dependencies { compile 'us.kirchmeier:capsule-runtime-...

    java classpath 批量设置脚本

    CLASSPATH="$CLASSPATH:""$jar" done windows : SETLOCAL ENABLEDELAYEDEXPANSION set LIB=xx set CLASSPATH=. FOR %%C IN (LIB\*.jar) DO set CLASSPATH=!CLASSPATH!;%%C echo %CLASSPATH%

    path与classpath区别

    本文详细介绍了path与classpath,以及它们之间的区别。

    springboot logback 自定义配置

    在application.propertiesa或yml中添加自定义logback的设置 logging.config=classpath:config/logback-spring.xml,把config文件夹复制到resource下即可,logback-spring.xml不需要修改,路径和日志大小格式等配置在...

    Classpath Variable 解决办法

    Classpath Variable 解决办法

    mysql修改编码设置方法

    ySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,本方法修改改文件。

    find_bugs 工具

    安装findbugs插件,及插件说明,经过测试。值得下载,超好用

    maven相关资料

    二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别 classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,...

    关于classpath

    关于java的classpath补充,详细说明如何配置classpath,如火热让javac正确编译运行java文件

    使用CXF实现WebService(源代码+jar包+文档说明讲解)

    &lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt; &lt;import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /&gt; &lt;import resource="classpath:META-INF/cxf/cxf-servlet.xml" /&gt; &lt;!-- DAO --&gt;...

Global site tag (gtag.js) - Google Analytics