1. 程式人生 > 實用技巧 >springboot獲取專案的絕對路徑和根目錄

springboot獲取專案的絕對路徑和根目錄

原文:https://blog.csdn.net/f45056231p/article/details/88692444

System.getProperty("user.dir")

輸出目錄:  G:\outshine\wangsoso

//獲取classes目錄絕對路徑

String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();

String path = ResourceUtils.getURL("classpath:").getPath();

輸出目錄:  /G:/outshine/wangsoso/target/classes/

//
如果上傳目錄為/static/images/upload/,則可以如下獲取: File upload = new File(path.getAbsolutePath(),"static/images/upload/"); if(!upload.exists()) upload.mkdirs(); System.out.println("upload url:"+upload.getAbsolutePath()); //在開發測試模式時,得到的地址為:{專案跟目錄}/target/static/images/upload/ //在打包成jar正式釋出時,得到的地址為:{釋出jar包目錄}/static/images/upload/ 注意:以jar包釋出專案時,我們儲存的路徑是與jar包同級的static目錄,因此我們需要在jar包目錄的application.properties配置檔案中設定靜態資源路徑,如下所示: #設定靜態資源路徑,多個以逗號分隔 spring.resources.
static-locations=classpath:static/,file:static/ 以jar包釋出springboot專案時,預設會先使用jar包跟目錄下的application.properties來作為專案配置檔案。 如果在不同的目錄中存在多個配置檔案,它的讀取順序是: 1、config/application.properties(專案根目錄中config目錄下) 2、config/application.yml 3、application.properties(專案根目錄下) 4、application.yml
5、resources/config/application.properties(專案resources目錄中config目錄下) 6、resources/config/application.yml 7、resources/application.properties(專案的resources目錄下) 8、resources/application.yml 注: 1、如果同一個目錄下,有application.yml也有application.properties,預設先讀取application.properties。 2、如果同一個配置屬性,在多個配置檔案都配置了,預設使用第1個讀取到的,後面讀取的不覆蓋前面讀取到的。 3、建立SpringBoot專案時,一般的配置檔案放置在“專案的resources目錄下”