原文: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目錄下”