我从非服务器应用程序中使用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 );
P.S。正如javadoc所述:
注意:纯路径将始终被解释为相对于 当前VM工作目录 ,即使它们以斜杠开头。 (这个 与Servlet容器中的语义一致。)使用 明确的“文件:”前缀以强制执行绝对文件路径。
“纯路径”-类似于“ dir1 / dir2 / file.xml”(不带斜杠或文件:)。
此外,it seems /home/dir1/file.xml
不能在 Linux 上运行(而C:\\dir1\\file.xml
不能在 Windows 上运行)是因为{{ 1}}-从根本上来说不是绝对的!!
答案 0 :(得分:1)
是的,您是对的。在这种情况下,它接受configLocation
。
要了解更多用例,可以看看FileSystemXmlApplicationContext
的{{3}}。
请注意,更好的方法是使用documentation,然后从该Path
实例中获取位置。