亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決springboot項目找不到resources目錄下的資源問題

發布時間:2021-08-11 14:50:06 來源:億速云 閱讀:961 作者:小新 欄目:開發技術

小編給大家分享一下如何解決springboot項目找不到resources目錄下的資源問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

springboot項目找不到resources目錄下的資源

問題描述:

將老的mvc項目轉為boot后找不到resources文件夾下的資源文件

原因:

war包采用的是tomcat部署,tomcat會對war包進行解壓,以及目錄的一些操作。而springboot使用jar包部署,服務器中是不存在相關目錄的。

環境:

springboot 2.2.2RELAESE

主要的API:

ClassPathResource classPathResource = new ClassPathResource(filePath);
InputStream inputStream = classPathResource.getInputStream();

工具類

import java.io.File;
import java.io.InputStream; 
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.ClassPathResource; 
 
public class FileUtil { 
    public File getResourceFile(String filePath) throws Exception{
 
        try {
            ClassPathResource classPathResource = new ClassPathResource(filePath);
 
            InputStream inputStream = classPathResource.getInputStream();
            //生成目標文件
            File somethingFile = File.createTempFile("DailyReportTemplate", ".xls");
            try {
                FileUtils.copyInputStreamToFile(inputStream, somethingFile);
            } finally {
                IOUtils.closeQuietly(inputStream);
            }
 
            return somethingFile;
        } catch (Exception e) {
            throw new Exception(e);
        }
    } 
}

運行jar文件時,ClassPathResource無法讀取到資源文件的問題

問題場景:

在idea中運行,一切正常,資源文件都可以訪問到,但打成jar包后,使用java -jar的形式去啟動,就訪問不到resource下的資源文件了

網上搜了很多文章,但試了后都不好使

我的路徑是配置在properties文件中,然后讀取配置文件中的值,然后拼接文件路徑,再使用ClassPathResource去讀取的

開始時我配置文件中是這樣寫的:

#路徑中注意首尾不要有空格
service.config-root=static/service/
service.config-name=AppConfig.json

程序代碼讀出后拼接:

@Value("${service.config-root}")
private String configRoot; 
@Value("${service.config-name}")
private String configName;
 
.....省略無關code..... 
 
public String getPath(){
    String configPath = this.configRoot + this.configName;
    return configPath;
}

但運行jar后,直接FileNotFoundException了

解決:

方案1:

主要是斜杠"\"和反斜杠"/"的問題,配置文件修改如下:

#路徑中注意首尾不要有空格
service.config-root=static\\tileservice\\
service.config-name=AppConfig.json
方案2:

使用"File.spearator"拼接路徑

service.config-root=static
service.config-name=AppConfig.json
@Value("${service.config-root}")
private String configRoot; 
@Value("${service.config-name}")
private String configName;
 
.....省略無關code.....
 
 public static <T> T readJsonFromClassPath(Type type) throws IOException {
        //這里使用File.spearator拼接
        ClassPathResource resource = new ClassPathResource(this.configRoot + File.spearator  + this.configName);
        if (resource.exists()) {
            return JSON.parseObject(resource.getInputStream(), StandardCharsets.UTF_8, type, .....
        }
    }

看完了這篇文章,相信你對“如何解決springboot項目找不到resources目錄下的資源問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

水富县| 南郑县| 西城区| 塔河县| 穆棱市| 柳河县| 哈巴河县| 西畴县| 铜鼓县| 辰溪县| 太和县| 三河市| 镇原县| 夏津县| 呼图壁县| 湘乡市| 峨边| 林口县| 公安县| 吐鲁番市| 咸宁市| 汾西县| 黄山市| 桃江县| 新邵县| 师宗县| 和平县| 剑阁县| 乡城县| 华蓥市| 阳东县| 茌平县| 柳河县| 永仁县| 松溪县| 二连浩特市| 晋城| 建水县| 瑞金市| 玉龙| 惠安县|