当前位置: 首页 > 面试题库 >

Spring XML中的“ classpath:”和“ classpath:/”之间有什么区别?

赵禄
2023-03-14
问题内容

我正在处理一些Spring
XML配置文件,有时使用"classpath:/datasource.xml"和有时"classpath:datasource.xml"。两者之间有区别/吗?还是领先的可选/隐含/冗余?


问题答案:

我认为这两者之间没有任何区别。您将看到的最大区别是相对路径和类路径位置上的*

这是Spring Resources的节选,请参见4.7.2.2节

Classpath *:
“ classpath :”前缀也可以与其余位置路径中的PathMatcher模式结合使用,例如“ classpath :META-INF /
*-beans.xml”。在这种情况下,解析策略非常简单:在最后一个非通配符路径段上使用ClassLoader.getResources()调用,以获取类加载器层次结构中的所有匹配资源,然后使用相同的PathMatcher解析策略关闭每个资源。上述描述用于通配符子路径。

这意味着类似 “ classpath 。xml”的模式
将不会从jar文件的根目录检索文件,而只会从扩展目录的根目录检索文件。这源于JDK的ClassLoader.getResources()方法中的限制,该方法仅返回传入的空字符串的文件系统位置(指示可能要搜索的根)。



 类似资料:
  • 在Eclipse中,modulepath和classpath之间有什么区别,我应该使用哪一个在lib文件夹中添加一个jar?为什么JRE系统库会出现在ModulePath中?

  • 问题内容: 在Eclipse中,modulepath和classpath有什么区别,我应该使用哪一个在lib文件夹中添加jar?为什么JRE系统库出现在modulepath中? 问题答案: 模块系统主要对代码有以下影响: 只能从一个模块访问一个软件包(嵌套的软件包被视为单独的软件包,因此即使该软件包在模块中,该软件包也可以在模块中) 您只能访问其他模块导出包中的公共字段和代码方法。即使是反射也是如

  • 问题内容: 我阅读了Sun文档以及有关Stack Overflow的大量文章,但是对于Java编译器选项和的区别,我仍然感到困惑。 假设我具有以下目录结构: 还要说我在package中有一个源文件,并且该目录结构在source文件夹中是可以的。 我在 project1 目录中并运行: 要么 和我得到相同的结果。在详细模式下,两种情况下都将搜索源文件。 如果有人可以帮助我弄清楚这些选项的细节,那将是

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • GNU Classpath(Java 的基本类库)是为了建立自由核心类库使用虚拟机和编译器的Java编程语言。它包括所有本地方法和核心课程是完全必要的功能Java运行。

  • 问题内容: 我正在Windows PC上工作,并且有cygwin!我将我所有的jars组织在几个目录中的一个目录下!我正在编写一个脚本,以通过遍历作为参数传递的目录来设置,如下所示: 每当在目录中有空格传递并且我运行时,都会抛出错误,指出未找到该类,因为CLASSPATH变量在之后被拆分。 有人可以帮我解决这个问题吗? 问题答案: 看到这篇文章。 您可以将完整的类路径包含在双qoutes中 或类路