關於springboot加載yml配置文件的no字段自動轉義問題
加載yml配置文件的no字段自動轉義
項目上線瞭才發現一個字段被轉義瞭,如下圖:
本來應該會拿到no字段和數據進行比對的,結果發現比對完的數據這個字段全是null,debug才發現這個字段這麼寫在加載yml文件之後自動變成瞭"false",第一次發現這個問題,修改很方便,把yml文件裡面這個no,換成'no'就可以不被轉義成"false"瞭,謹以此提醒,小錯誤導致臨時調整一次上線。。。。
springboot配置文件自動轉譯的坑
在使用SpringBoot配置文件時遇到的問題,當使用yaml作為配置文件時將batchEmail.task.switch 設置為 ON
#批量定時發送郵件配置 batchEmail: task: size: 1000 switch: ON
則在JAVA代碼中通過 @Value取值
@Value("${batchEmail.task.switch}") private String batchEmailTaskSwitch;
會得到自動轉譯的Boolean值
經過測試,若想取得字符串"ON" 須將配置文件做如如下修改
#批量定時發送郵件配置 batchEmail: task: size: 1000 switch: "ON"
ON加瞭雙引號後,取值正常
小結一下
約定大於配置,這是springboot最大的特點,所以在使用配置文件定義屬性時,應該嚴格遵循配置文件的格式要求,定義的字符串必須加雙引號,否則想yes、no、off、on之類的字符會被轉譯為Boolean串。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot中YAML語法及幾個註意點說明
- 解決SpringBoot使用yaml作為配置文件遇到的坑
- 解決springboot 2.x集成log4j2調試日志無法關閉的問題
- SpringBoot yaml中的數組類型取值方式
- springboot讀取application.yml報錯問題及解決