"file:d:\\dir1\file.xml" 和 "file:/d:\\dir1\file.xml" 作为 FileSystemXmlApplication
Posted
技术标签:
【中文标题】"file:d:\\\\dir1\\file.xml" 和 "file:/d:\\\\dir1\\file.xml" 作为 FileSystemXmlApplicationContext 参数【英文标题】:"file:d:\\dir1\file.xml" and "file:/d:\\dir1\file.xml" as FileSystemXmlApplicationContext arguments"file:d:\\dir1\file.xml" 和 "file:/d:\\dir1\file.xml" 作为 FileSystemXmlApplicationContext 参数 【发布时间】:2019-06-11 13:11:38 【问题描述】:我在非服务器应用程序中使用 Spring(只需从 Eclipse 中某个类的 main() 编译并运行它)。
我的问题是什么可以作为新FileSystemXmlApplicationContext 的参数?
这个参数是一个字符串。我没有看到任何 URI/URL 构造函数。
但是它不仅接受“d:\dir1\file.xml”,还接受“file:d:\dir1\file.xml”和“file:/d:\dir1\file.xml”——为什么?我可以在任何地方都依赖它吗(比如在 Linux 上,我只在 Windows 上测试过)。在这个 String 参数中使用“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 所说:
注意:普通路径将始终被解释为相对于 当前 VM 工作目录,即使它们以斜杠开头。 (这 与 Servlet 容器中的语义一致。)使用 显式的“file:”前缀强制使用绝对文件路径。
“普通路径” - 似乎类似于“dir1/dir2/file.xml”(没有前导斜杠或文件:)。
此外,it seems /home/dir1/file.xml
不能在 Linux 上工作(而 C:\\dir1\\file.xml
在 Windows 上工作)因为 /home
- 不是绝对的根!!!
【问题讨论】:
如果对您有帮助,请将其标记为“已回答”,以帮助其他人看到您找到了答案并且对您有所帮助。谢谢:) 【参考方案1】:是的,你是对的。在这种特殊情况下,它接受configLocation
。
如需更多用例,您可以查看documentation for FileSystemXmlApplicationContext
。
旁注
考虑到,更好的方法是使用Paths.get,然后从Path
实例中获取位置。
【讨论】:
以上是关于"file:d:\\dir1\file.xml" 和 "file:/d:\\dir1\file.xml" 作为 FileSystemXmlApplication的主要内容,如果未能解决你的问题,请参考以下文章
如何将 ["tag":"google","count":1,"tag":"microsoft",&q
"message":"请求失败,状态码 500","name":"Error","stack":&q
"errors":"errors":["detail":"您无权执行此操作。","code":&qu
"Navicat" , "mysql" , "xxx.war" , "tomcat",“JDK","