2 回答

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
來自 Spring 文檔
通配符類路徑依賴于底層類加載器的 getResources() 方法。由于現(xiàn)在大多數(shù)應(yīng)用程序服務(wù)器都提供自己的類加載器實(shí)現(xiàn),因此行為可能會(huì)有所不同,尤其是在處理 jar 文件時(shí)。檢查 classpath* 是否有效的一個(gè)簡(jiǎn)單測(cè)試是使用類加載器從類路徑上的 jar 中加載文件:getClass().getClassLoader().getResources("")。嘗試使用具有相同名稱但位于兩個(gè)不同位置的文件進(jìn)行此測(cè)試。如果返回不適當(dāng)?shù)慕Y(jié)果,請(qǐng)檢查應(yīng)用程序服務(wù)器文檔以獲取可能影響類加載器行為的設(shè)置。
所以classPath是為了從當(dāng)前類加載器加載資源(只是為了理解不會(huì)讀取jar或其他項(xiàng)目依賴下的資源)
classpath* 將做 jar 或其他類加載器資源。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
首先是Spring boot在源碼中顯示banner。可以在SpringApplication.class中找到代碼,printBanner方法是用來顯示banner的。就像mallikarjun說的classPath是從當(dāng)前類加載器中加載資源(簡(jiǎn)單理解下不會(huì)讀取資源) jar 或其他項(xiàng)目依賴項(xiàng))classpath* 將執(zhí)行 jar 或其他類加載器資源。如果你使用 classpath*:banner.txt 會(huì)在 jar 中找到。
添加回答
舉報(bào)