第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring 5.1.2 PathMatchingResourcePatternResolver

Spring 5.1.2 PathMatchingResourcePatternResolver

九州編程 2022-01-12 16:42:44
我正在閱讀有關(guān) classpath* 的 spring 文檔,我發(fā)現(xiàn):請注意,classpath*: 與 Ant 樣式模式結(jié)合使用時,只能在模式開始前至少在一個根目錄下可靠地工作,除非實際的目標文件駐留在文件系統(tǒng)中。這意味著像 classpath*:*.xml 這樣的模式不會從 jar 文件的根目錄中檢索文件,而只會從擴展目錄的根目錄中檢索文件。這源于 JDK 的 ClassLoader.getResources() 方法的限制,該方法僅返回傳入空字符串的文件系統(tǒng)位置(指示要搜索的潛在根)。當我在本地嘗試這個時,我很困惑它適用于 jar 的根目錄,例如:test.txt 資源存在于 test2 根目錄(這是我從中運行應(yīng)用程序的類),并且 test.txt 上還有 test.txt 依賴于 test2項目測試2:    @RunWith(JUnit4.class)public class TestDriver {@Testpublic void test() throws IOException {    PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();    System.out.println(Arrays.toString(resolver.getResources("classpath*:*test.txt")));    Enumeration<URL> enumeration= this.getClass().getClassLoader().getResources("");    int count=0;    while(enumeration.hasMoreElements()){       URL url= enumeration.nextElement();       System.out.println(url.getFile());        count++;    }    System.out.println(count);}}輸出 :[URL [jar:file:/C:/.../.m2/repository/com/test/1.0-SNAPSHOT/test-1.0-SNAPSHOT.jar!/test.txt]] --->這個問題在 jar 的根目錄中檢測到文本文件,根據(jù)文檔,它不應(yīng)該被檢測到從 "this.getClass().getClassLoader().getResources("")" 只有 2 個根(測試 jar 不是其中的一部分):/..../test2/target/test-classes//..../test2/target/classes/2
查看完整描述

1 回答

?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

該文檔指的是在這種特定情況下資源查找的可靠性。
您還可以閱讀PathMatchingResourcePatternResolverjavadoc的此警告部分的末尾(重點是我的):

警告:請注意,當與 Ant 樣式模式結(jié)合使用時,“classpath*:”只能在模式開始前至少在一個根目錄下可靠地工作

...

ResourcePatternResolver實現(xiàn)試圖通過 URLClassLoader 內(nèi)省和“java.class.path”清單評估來減輕 jar 根查找限制;但是,沒有可移植性保證。

看來它適用于您的情況。


查看完整回答
反對 回復(fù) 2022-01-12
  • 1 回答
  • 0 關(guān)注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號