SpringBoot配置application.yml時遇到的錯誤及解決
SpringBoot配置application.yml時遇到錯誤
控制臺報錯:
org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here in 'reader', line 13, column 10: url: jdbc:mysql://localhost:3306/ho ...
問題:

driver-class-name與下面的配置項應該是同級的,其他三項前多了空格
此外,application.yml文件中的配置鍵值對都要用冒號加一個空格隔開鍵和值
SpringBoot application.yml一些加載規(guī)則
SpringBoot是Java后端開發(fā)必須掌握的技術(shù)棧,而application.yml文件作為SpringBoot的核心配置,我們有必要去搞清楚約定的規(guī)則,提高開發(fā)效率。
1.application.yml與application.properties加載順序
當src/main/resources目錄下同時存在application.yml和application.properties的時候,兩個配置文件中的內(nèi)容都會被加載。
加載順序是:
- 1.application.yml
- 2.application.properties
假設(shè)兩個配置文件中存在相同的配置,那么后加載的將會覆蓋掉先加載的,可以理解為Map的put操作。
PS:
該加載順序規(guī)則同樣適用于application-{profile}.yml和application-{profile}.yml,不過在項目實踐中不建議將yml和properties混用,避免后期維護起來困難。
2.src/test/resources/application.yml與src/main/resources/application.yml加載順序
通常在對SpringBoot應用做單元測試時,會在src/test/resources目錄下的新增application.yml,因為測試的配置往往和應用的配置存在差異。
當@SpringBootTest注解標注的類啟動Spring上下文時會先加載src/main/resources/application.yml,然后加載src/test/resources目錄下的application.yml,當key相同時后加載的配置將覆蓋先加載的配置。
3.多環(huán)境下的application.yml加載問題
兩種方式:
- 單一application.yml配置方式
spring:
profiles:
active: local # 啟動哪個環(huán)境的配置,---用來設(shè)置便捷
---
spring:
config:
activate:
on-profile: local
server:
port: 8080
---
spring:
config:
activate:
on-profile: product
server:
port: 8081
---
spring:
config:
activate:
on-profile: test
server:
port: 808
- 多配置文件方式
顯然將多個環(huán)境的配置放在同一份配置文件中,隨著后期配置項的不斷增加,整個配置文件的會顯得非常臃腫,而且本地配置文件和生產(chǎn)配置文件差異可能也較大,后期不同開發(fā)人員維護起來也比較痛苦。
一個好的辦法是將一個配置文件拆分成多個配置文件,通過這種方式,每個配置文件中寫自己的配置,主配置文件中寫清楚用哪一個配置文件就好了,當然如果有些配置項所有環(huán)境都一樣,也可以將這些配置都維護在主配置文件中。
多環(huán)境配置文件的命名規(guī)則為:application-環(huán)境名.yml
### application.yml主配置文件
spring:
profiles:
active: dev

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- springboot的application.yml配置port不生效的解決方案
- SpringBoot中application.yml配置文件的寫法
- Springboot?application.yml配置文件拆分方式
- 多個springboot項目如何使用一個外部共同的application.yml
- SpringBoot中application.properties、application.yaml、application.yml區(qū)別
- Spring Boot 配置文件(application.yml、application-dev.yml、application-test.yml)
- SpringBoot+log4j2.xml使用application.yml屬性值問題
- springboot?log4j2.xml如何讀取application.yml中屬性值
- Spring Boot application.yml配置文件示例詳解
相關(guān)文章
SpringBoot中實現(xiàn)多線程6種方式總結(jié)
這篇文章主要為大家詳細介紹了在Spring Boot中實現(xiàn)多線程的6種方式,文章的示例代碼講解詳細,大家可以結(jié)合不同場景和需求進行靈活選擇2025-08-08
Spring超詳細講解創(chuàng)建BeanDefinition流程
Spring在初始化過程中,將xml中定義的對象解析到了BeanDefinition對象中,我們有必要了解一下BeanDefinition的內(nèi)部結(jié)構(gòu),有助于我們理解Spring的初始化流程2022-06-06
java.nio.file.InvalidPathException異常解決
本人在ubuntu22.04的操作系統(tǒng)上,運行java程序時創(chuàng)建一個文件,由于文件名稱中包含了中文,所以導致了程序拋出了java.nio.file.InvalidPathException的異常,感興趣的可以了解一下2025-09-09
SpringMVC實現(xiàn)前端后臺交互傳遞數(shù)據(jù)
本篇文章主要介紹了SpringMVC實現(xiàn)前端后臺傳遞數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
IntelliJ IDEA中出現(xiàn)"PSI and index do not match"錯誤的解決辦法
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA中出現(xiàn)"PSI and index do not match"錯誤的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10

