最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案

 更新時間:2019年03月25日 15:04:28   作者:雙斜杠少年  
今天小編就為大家分享一篇關(guān)于Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

前一段時間遇到一個問題,是關(guān)于讀取項目中文件資源的問題。我是一個maven工程 我把一張照片放到resource下面,然后在本地讀取的時候可以讀取到,但是一旦打成WAR包以后就總是包找不到文件資源錯誤。我的war包是springboot打的war包,是內(nèi)嵌的tomcat所以不解壓,然后系統(tǒng)去找路徑的時候會發(fā)現(xiàn)是個WAR包,而圖片在WAR包內(nèi),所以找不到。

為了解決這個問題,我走了好多彎路,一直在路徑上花費時間。

一開始使用修改配置文件的方式:

# 配置靜態(tài)資源訪問前綴
spring.mvc.static-path-pattern=*/**
# 配置靜態(tài)資源路徑,默認配置失效
spring.resources.static-locations=../upload

發(fā)現(xiàn)并不行,無法解析出相對路徑。

最后我是通過系統(tǒng)運行去讀取文件源,然后將文件流存儲在服務器上,存一個臨時文件,然后系統(tǒng)再去讀這個臨時文件,然后就讀取到這個文件了。

其實就是java數(shù)據(jù)流轉(zhuǎn)換為文件

解題思路是上述那樣的。接著就是代碼了

調(diào)用代碼如下

File f = new File("/tmp/image1.jpg"));//臨時圖片存在的位置
      if (!f.exists()) {
        InputStream in = this.getClass().getResourceAsStream("/templates/emailImg.png");//圖片在項目中的位置
        FileUtil.inputstreamtofile(in, f);
      }
      // 如果需要使用文件,這個/tmp/image1.jpg就是臨時文件路徑

轉(zhuǎn)換方法代碼如下

public static void inputstreamtofile(InputStream ins, File file) {
    try {
      OutputStream os = new FileOutputStream(file);
      int bytesRead = 0;
      byte[] buffer = new byte[8192];
      while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
        os.write(buffer, 0, bytesRead);
      }
      os.close();
      ins.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

需要注意一下, 放置臨時文件的路徑可能是在docker容器中的,而不是在服務器上. 所以需要先把前面的路徑 mkdirs, 然后再f.createNewFile;, 一下再調(diào)用FileUtil.inputstreamtofile才可以。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • java system類使用方法示例 獲取系統(tǒng)信息

    java system類使用方法示例 獲取系統(tǒng)信息

    這篇文章主要介紹了java system類使用方法,該類中的方法都是靜態(tài)的。不能被實例化,沒有對外提供構(gòu)造函數(shù),該類可以獲取系統(tǒng)信息
    2014-01-01
  • 公司一般使用的分布式RPC框架及其原理面試

    公司一般使用的分布式RPC框架及其原理面試

    這篇文章主要為大家介紹了公司一般使用的分布式RPC框架及其原理的面試問題解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-03-03
  • JVM雙親委派模型知識詳細總結(jié)

    JVM雙親委派模型知識詳細總結(jié)

    今天帶各位小伙伴學習Java虛擬機的相關(guān)知識,文中對JVM雙親委派模型作了非常詳細的介紹,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • 一文掌握JVM?Safe?Point

    一文掌握JVM?Safe?Point

    關(guān)于?Safe?Point?是?JVM?中很關(guān)鍵的一個概念,但我估計有不少同學不是很懂,于是今天跟大家來深入聊聊?Safe?Point,通過本文學習你會了解什么是?Safe?Point?為啥需要?Safe?Point?Safe?Point?與?Stop?the?World?的關(guān)系?感興趣的朋友一起看看吧
    2022-10-10
  • Springboot Thymeleaf字符串對象實例解析

    Springboot Thymeleaf字符串對象實例解析

    這篇文章主要介紹了Springboot Thymeleaf字符串對象實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2007-09-09
  • Java的Hibernate框架中的組合映射學習教程

    Java的Hibernate框架中的組合映射學習教程

    組合映射即是指主對象和子對象關(guān)聯(lián)且擁有相同的生命周期的映射關(guān)系,這里我們將舉一些數(shù)據(jù)操作的實例,來講解Java的Hibernate框架中的組合映射學習教程
    2016-07-07
  • @Valid和@Validated注解校驗以及異常處理方式

    @Valid和@Validated注解校驗以及異常處理方式

    在Javaweb開發(fā)中,防止數(shù)據(jù)庫惡意攻擊是至關(guān)重要的,盡管前端校驗可以起到一定的篩選作用,但通過工具如postman直接對后端發(fā)起請求的情況仍然需要后端進行嚴格的數(shù)據(jù)校驗,Java生態(tài)下,@Valid注解配合SpringBoot提供了一個便捷高效的后端數(shù)據(jù)校驗方案
    2024-11-11
  • Java內(nèi)存泄漏問題的排查、優(yōu)化與最佳實踐

    Java內(nèi)存泄漏問題的排查、優(yōu)化與最佳實踐

    在?Java?開發(fā)中,內(nèi)存泄漏是一個常見且令人頭疼的問題,內(nèi)存泄漏指的是程序在運行過程中,已經(jīng)不再使用的對象沒有被及時釋放,從而導致內(nèi)存占用不斷增加,最終可能導致程序崩潰或性能顯著下降,本文給大家介紹了Java內(nèi)存泄漏排查、優(yōu)化與最佳實踐
    2025-01-01
  • 一文詳解Spring?中的順序問題

    一文詳解Spring?中的順序問題

    本文主要介紹了Spring?中的順序問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能

    SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能

    本文講解的是如何使用Spring動態(tài)配置文件,實現(xiàn)不同環(huán)境不同配置,靈活切換配置文件;以及講述了如何使用?Maven?打包,然后上傳至Linux服務器進行部署,對SpringBoot打包部署上線過程感興趣的朋友一起看看吧
    2022-10-10

最新評論

岢岚县| 海原县| 翼城县| 邯郸县| 乌海市| 阿勒泰市| 富源县| 庐江县| 德令哈市| 桃源县| 汉阴县| 山阴县| 襄汾县| 新郑市| 库尔勒市| 桓台县| 绥阳县| 伊宁县| 社会| 锡林郭勒盟| 靖西县| 靖宇县| 伊通| 龙南县| 广南县| 德钦县| 嘉鱼县| 资源县| 江都市| 闸北区| 五大连池市| 麻江县| 阳新县| 双辽市| 噶尔县| 巨野县| 栾城县| 道真| 旬邑县| 池州市| 弥勒县|