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

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运行。

  • 问题内容: 我是AngularJS的新手。谁能解释一下这些AngularJS运算符之间的区别:用适当的示例隔离范围时。 问题答案: 允许将在指令属性上定义的值传递到指令的隔离范围。该值可以是简单的字符串值(),也可以是带有嵌入式表达式()的AngularJS插值字符串。可以将其视为从父作用域到子指令的“单向”通信。约翰·林德奎斯特(John Lindquist)进行了一系列简短的电视广播,解释了每