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,改完后發(fā)現(xiàn)之前文件中注釋的中文亂碼了,問題的原因應(yīng)該是出自于這里,于是將注釋全部刪除,再啟動就正常了。
注:文件格式更改后,看是否有亂碼現(xiàn)象,注釋也會有影響。
@Value讀取Application.yml為null
項目需求
在springBoot中有一個寫死的url,發(fā)送http請求獲取一個視頻地址。
一開始的思路是這樣的,然后考慮到這樣寫不夠靈活,因為是springBoot項目,所以直接在配置文件中獲取url這樣是十分方便的。
然后需要獲取Value的敵方使用@VALUE注解來獲取
但是死活獲取不到該處的URL,一直為空。
解決辦法
最后發(fā)現(xiàn)該變量我之前用static進(jìn)行修飾。static是在類加載前便初始化變量。所以這時@VALUE并沒有生效。所以為NULL
只需要把static去掉便可以了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?教程之創(chuàng)建項目的三種方式
這篇文章主要分享了Spring?Boot?教程之創(chuàng)建項目的三種方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限詳解
這篇文章主要介紹了Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限詳解, 通過Mybatis攔截器我們可以攔截某些方法的調(diào)用,我們可以選擇在這些被攔截的方法執(zhí)行前后加上某些邏輯,需要的朋友可以參考下2023-11-11java字符串日期類Date和Calendar相互轉(zhuǎn)化及相關(guān)常用方法
Java語言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個基本但是非常重要的部分,下面這篇文章主要給大家介紹了關(guān)于java字符串日期類Date和Calendar相互轉(zhuǎn)化及相關(guān)常用方法的相關(guān)資料,需要的朋友可以參考下2023-12-12Java BigInteger類,BigDecimal類,Date類,DateFormat類及Calendar類用法示例
這篇文章主要介紹了Java BigInteger類,BigDecimal類,Date類,DateFormat類及Calendar類用法,結(jié)合實例形式詳細(xì)分析了Java使用BigInteger類,BigDecimal類,Date類,DateFormat類及Calendar類進(jìn)行數(shù)值運(yùn)算與日期運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-03-03使用@RequiredArgsConstructor注解來取代繁瑣的@Autowrired
有了@RequiredArgsConstructor注解,我們就可以減少@Autowired的書寫,本文主要介紹了使用@RequiredArgsConstructor注解來取代繁瑣的@Autowrired,感興趣的可以了解一下2022-04-04關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列
這篇文章主要介紹了關(guān)于SpringBoot整合RabbitMQ實現(xiàn)死信隊列,死信隊列實際上就是一個普通的隊列,只是這個隊列跟死信交換機(jī)進(jìn)行了綁定,用來存放死信而已,需要的朋友可以參考下2023-05-05