springboot讀取application.yml報錯問題及解決
springboot讀取application.yml報錯
springboot項目啟動時,讀取配置文件出錯
錯誤信息如下
Failed to load property source from location 'classpath:/application.yml'
……
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
查找資料,原因基本確定為文件編碼格式的問題(原yml文件為GBK格式),於是將GBK格式改為UTF-8,改完後發現之前文件中註釋的中文亂碼瞭,問題的原因應該是出自於這裡,於是將註釋全部刪除,再啟動就正常瞭。
註:文件格式更改後,看是否有亂碼現象,註釋也會有影響。
@Value讀取Application.yml為null
項目需求
在springBoot中有一個寫死的url,發送http請求獲取一個視頻地址。
一開始的思路是這樣的,然後考慮到這樣寫不夠靈活,因為是springBoot項目,所以直接在配置文件中獲取url這樣是十分方便的。
然後需要獲取Value的敵方使用@VALUE註解來獲取
但是死活獲取不到該處的URL,一直為空。
解決辦法
最後發現該變量我之前用static進行修飾。static是在類加載前便初始化變量。所以這時@VALUE並沒有生效。所以為NULL
隻需要把static去掉便可以瞭。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 解決SpringBoot使用yaml作為配置文件遇到的坑
- springboot默認的5種加載路徑詳解
- SpringBoot框架配置文件路徑設置方式
- spring 和 spring boot 中的屬性配置方式
- SpringBoot配置加載,各配置文件優先級對比方式