簡體   English   中英

Spring Boot中的classpath和classpath *有什么區別?

[英]what's the difference between classpath and classpath* in spring boot?

當我使用spring boot banner配置文件時,我發現:

有用:

spring.banner.location = classpath:banner.txt

不起作用:

spring.banner.location = classpath *:banner.txt

那么classpath:和classpath *:有什么區別?

從Spring文檔

通配符類路徑依賴於基礎類加載器的getResources()方法。 由於當今大多數應用程序服務器都提供了自己的類加載器實現,因此行為可能有所不同,尤其是在處理jar文件時。 檢查classpath *是否有效的一個簡單測試是使用classloader從classpath的jar中加載文件:getClass()。getClassLoader()。getResources(“”)。 嘗試對具有相同名稱但位於兩個不同位置的文件進行此測試。 如果返回了不合適的結果,請檢查應用程序服務器文檔中可能會影響類加載器行為的設置。

因此,classPath是用於從當前類加載器加載資源的(僅為了理解,它不會在jar或其他項目依賴項下讀取資源)

classpath *將執行jar或其他類加載器資源。

自從Spring boot在源代碼中顯示標題之后,您可以在SpringApplication.class中找到代碼,使用printBanner方法顯示標題。例如mallikarjun表示classPath用於從當前類加載器加載資源(為理解起見,不會讀取資源) jar或其他項目依賴項)classpath *將執行jar或其他類加載器資源。 如果使用classpath *:banner.txt,則會在jar中找到它。

暫無
暫無

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

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