[SpringBoot] 配置檔案 與常用方法

kingdelee發表於2019-08-12

配置檔案

配置訪問字首

SpringBoot版本 配置
1.x server.context-path=/api/guache
2.x server.servlet.context-path=/api/guache

yaml:

server:
  port: 8201
  tomcat:
    uri-encoding: UTF-8
    remote-ip-header: x-forward-for
    max-threads: 1000
    max-http-post-size: 102400000 # 設定Httppost資料大小
  max-http-header-size: 102400000 # 設定HttpHeader請求頭大小ostSize =102400000   //設定Httppost資料大小
  servlet:
    context-path: /api/guache

訪問時即:
http://47.111.170.xx/api/guache

常用方法

讀取配置檔案

有些讀取配置檔案的方式,在本機開發除錯過程中是正確的,但是在打包為一個jar執行後,就失敗了
失敗的方式:

file = new ClassPathResource("excel/contract.xlsx").getFile()
java.io.FileNotFoundException: class path resource [excel/contract.xlsx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/project/guache/guache_java/guache.jar!/BOOT-INF/classes!/excel/contract.xlsx

問題的本質不在於某些類的讀檔案的方式行不行,本質在於,當打包後,是無法獲取真實的資原始檔的,因為檔案在jar中,無法通過路徑獲取
所以,只能獲取到流,而我們實際上想要操作檔案,也是通過流操作的
正解為:


InputStream resourceAsStream = ContractFormServiceImpl.class.getResourceAsStream("excel/contract.xlsx");
is = new ClassPathResource("excel/contract.xlsx").getInputStream();
InputStream a = this.getClass().getResourceAsStream("a");
``
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章