gpt4 book ai didi

java - "file:d:\\dir1\file.xml"和 "file:/d:\\dir1\file.xml"作为 FileSystemXmlApplicationContext 参数

转载 作者:行者123 更新时间:2023-12-02 09:47:26 29 4
gpt4 key购买 nike

我在非服务器应用程序中使用 Spring(只需从 Eclipse 中某个类的 main() 编译并运行它)。

我的问题是作为 new FileSystemXmlApplicationContext 的参数可以接受什么?

这个参数是一个字符串。我没有看到任何 URI/URL 构造函数。

但它不仅接受“d:\dir1\file.xml”,还接受“file:d:\dir1\file.xml”和“file:/d:\dir1\file.xml” - 为什么?我可以在任何地方都依赖它吗(比如在 Linux 上,我只在 Windows 上测试过它)。在此字符串参数中使用“file: sth”可以吗?

String metadata = "D:\\mybean.xml";  // fine!
String metadata = "file:D:\\mybean.xml"; // fine!
String metadata = "file:/D:\\mybean.xml"; // fine
String metadata1 = "file://D:\\mybean.xml"; // resource not found
ApplicationContext context = new FileSystemXmlApplicationContext( metadata );

附注如javadoc状态:

NOTE: Plain paths will always be interpreted as relative to the current VM working directory, even if they start with a slash. (This is consistent with the semantics in a Servlet container.) Use an explicit "file:" prefix to enforce an absolute file path.

“普通路径” - 似乎类似于“dir1/dir2/file.xml”(没有前导斜杠或文件:)。

此外,it seems /home/dir1/file.xml 无法在 Linux 上运行(而 C:\\dir1\\file.xml 可以在Windows)因为 /home - 不是绝对的 root!!!

最佳答案

是的,你是对的。在这种特殊情况下它接受configLocation

有关更多用例,您可以查看此 documentation对于FileSystemXmlApplicationContext

旁注

考虑到,更好的方法是使用 Paths.get然后从该 Path 实例获取位置。

关于java - "file:d:\\dir1\file.xml"和 "file:/d:\\dir1\file.xml"作为 FileSystemXmlApplicationContext 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56544554/

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