gpt4 book ai didi

java - Spring XML 中的 "classpath:"和 "classpath:/"有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 13:53:54 24 4
gpt4 key购买 nike

我正在处理一些 Spring XML 配置文件,有时它们使用 "classpath:/datasource.xml",有时使用 "classpath:datasource.xml"。两者有区别还是前导 / 是可选的/隐含的/多余的?

最佳答案

我看不出这两者有什么区别。您将看到的最大区别是类路径位置上的相对路径和 *

这里是 Spring Resources 的摘录,查找第 4.7.2.2 节

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

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

关于java - Spring XML 中的 "classpath:"和 "classpath:/"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com