欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決springboot項(xiàng)目找不到resources目錄下的資源問題

 更新時(shí)間:2021年08月11日 11:31:53   作者:the_fool_  
這篇文章主要介紹了解決springboot項(xiàng)目找不到resources目錄下的資源問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot項(xiàng)目找不到resources目錄下的資源

問題描述:

將老的mvc項(xiàng)目轉(zhuǎn)為boot后找不到resources文件夾下的資源文件

原因:

war包采用的是tomcat部署,tomcat會(huì)對(duì)war包進(jìn)行解壓,以及目錄的一些操作。而springboot使用jar包部署,服務(wù)器中是不存在相關(guān)目錄的。

環(huán)境:

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();
            //生成目標(biāo)文件
            File somethingFile = File.createTempFile("DailyReportTemplate", ".xls");
            try {
                FileUtils.copyInputStreamToFile(inputStream, somethingFile);
            } finally {
                IOUtils.closeQuietly(inputStream);
            }
 
            return somethingFile;
        } catch (Exception e) {
            throw new Exception(e);
        }
    } 
}

運(yùn)行jar文件時(shí),ClassPathResource無法讀取到資源文件的問題

問題場(chǎng)景:

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

網(wǎng)上搜了很多文章,但試了后都不好使

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

開始時(shí)我配置文件中是這樣寫的:

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

程序代碼讀出后拼接:

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

但運(yùn)行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;
 
.....省略無關(guān)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, .....
        }
    }

搞定!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java判斷一個(gè)字符串是不是一個(gè)數(shù)字的解決思路

    Java判斷一個(gè)字符串是不是一個(gè)數(shù)字的解決思路

    這篇文章主要給大家介紹了關(guān)于Java判斷一個(gè)字符串是不是一個(gè)數(shù)字的解決思路,判斷一個(gè)字符串是否為數(shù)字是Java開發(fā)中很常見的業(yè)務(wù)需求,實(shí)現(xiàn)這個(gè)判斷有很多種方式,需要的朋友可以參考下
    2023-08-08
  • 關(guān)于SHA算法原理與常用實(shí)現(xiàn)方式

    關(guān)于SHA算法原理與常用實(shí)現(xiàn)方式

    這篇文章主要介紹了關(guān)于SHA算法原理與常用實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 使用maven開發(fā)springboot項(xiàng)目時(shí)pom.xml常用配置(推薦)

    使用maven開發(fā)springboot項(xiàng)目時(shí)pom.xml常用配置(推薦)

    這篇文章主要介紹了使用maven開發(fā)springboot項(xiàng)目時(shí)的pom.xml常用配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • IDEA快速搭建jsp項(xiàng)目的圖文教程

    IDEA快速搭建jsp項(xiàng)目的圖文教程

    這篇文章主要介紹了IDEA快速搭建jsp項(xiàng)目的圖文教程,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Nacos入門過程的坑--獲取不到配置的值問題

    Nacos入門過程的坑--獲取不到配置的值問題

    這篇文章主要介紹了Nacos入門過程的坑--獲取不到配置的值問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • JAVA遍歷Map集合的幾種方法匯總

    JAVA遍歷Map集合的幾種方法匯總

    這篇文章主要給大家介紹了關(guān)于JAVA遍歷Map集合的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 詳解Struts2標(biāo)簽遍歷

    詳解Struts2標(biāo)簽遍歷

    這篇文章主要介紹了Struts2標(biāo)簽遍歷,以及相關(guān)的用法示例,需要的朋友可以參考下。
    2017-09-09
  • Intellij Mybatis連接Mysql數(shù)據(jù)庫(kù)

    Intellij Mybatis連接Mysql數(shù)據(jù)庫(kù)

    最近在搞android的項(xiàng)目,在開發(fā)過程中遇到了好多問題,今天小編給大家說下mybatis連接MySQL數(shù)據(jù)庫(kù)的方法,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-10-10
  • Spring Boot 與 Kotlin 使用JdbcTemplate連接MySQL數(shù)據(jù)庫(kù)的方法

    Spring Boot 與 Kotlin 使用JdbcTemplate連接MySQL數(shù)據(jù)庫(kù)的方法

    本文介紹在Spring Boot基礎(chǔ)下配置數(shù)據(jù)源和通過 JdbcTemplate 編寫數(shù)據(jù)訪問的示例。感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-01-01
  • JavaWeb入門:ServletContext詳解和應(yīng)用

    JavaWeb入門:ServletContext詳解和應(yīng)用

    這篇文章主要介紹了Java ServletContext對(duì)象用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-07-07

最新評(píng)論