簡體   English   中英

“ 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

我從非服務器應用程序中使用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 );

PS如javadoc所述:

注意:即使純路徑以斜杠開頭,它們也始終會被解釋為相對於當前VM工作目錄 (這與Servlet容器中的語義一致。) 使用顯式的“ file:”前綴來強制執行絕對文件路徑。

“普通路徑”-類似於“ dir1 / dir2 / file.xml”(不帶斜杠或file:)。

此外, 似乎 /home/dir1/file.xmlLinux上不起作用(而C:\\\\dir1\\\\file.xmlWindows上則是因為) /home /home/dir1/file.xml從根目錄開始並不是絕對的!!!

是的,你是對的。 在這種特殊情況下,它接受configLocation

對於更多用例,您可以查看一下FileSystemXmlApplicationContext 文檔

邊注

考慮到,更好的方法是使用Paths.get ,然后僅從該Path實例獲取位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM