Spring Boot內嵌tomcat關於getServletContext().getRealPath獲取得到臨時路徑的問題


問題:

  • 使用getServletContext().getRealPath()得到的是臨時文件的路徑。
  • 每次重啟服務,這個臨時文件的路徑還會變更。
  • 類似下面這種路徑:

在這里插入圖片描述

解決措施:

  • 在idea的啟動配置里面配置工作區。

在這里插入圖片描述

  • 在工作區下建立public文件夾。

  • 問題解決。

原理解釋:

  • 源碼位置:org\springframework\boot\web\servlet\server\DocumentRoot.java
  • SpringBoot啟動后,默認會把commonDocRoot設置成這三個目錄(java項目 www.fhadmin.org)。

commonDocRoot
在這里插入圖片描述

  • 如果沒有就會設置成臨時位置。
  • 注意:這些目錄都是在工作區下找的,如果沒有設置工作區,肯定也是找不到的。
  • 配置好工作區,添加了public文件夾后,就能正常獲取路徑了。
  • 文件存儲成功。

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM