Spring Boot通过YML配置Profile失效及报错解决咨询
解决步骤
1. 修正配置文件名拼写错误
你的主配置文件和dev环境配置文件名存在拼写错误:applicaiton.yml需改为application.yml,applicaiton-dev.yml需改为application-dev.yml。Spring Boot只会自动加载命名规范为application*.yml的配置文件,拼写错误会导致配置完全不被加载,这是Profile失效的核心原因之一。
2. 移除YAML文件中的TAB缩进,统一使用空格
报错信息明确提示:found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation),YAML语法严格要求只能用空格缩进,禁止使用TAB。你需要:
- 打开所有
.yml文件,将所有TAB替换为2个或4个空格(保持全局缩进规则统一即可) - 逐行检查缩进层级,确保父子节点的结构正确
3. 修复application-dev.yml的配置结构错误
当前application-dev.yml存在缩进逻辑错误,导致配置无法被正确解析:
dbcp2下的属性(max-total、initial-size等)未缩进在dbcp2节点下type属性属于spring.datasource的子节点,不应与dbcp2同级
修正后的application-dev.yml如下:
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql:///ntspbms616db username: root password: root dbcp2: max-total: 100 initial-size: 10 max-conn-lifetime-millis: 10000000 type: org.apache.commons.dbcp2.BasicDataSource
4. 验证修复效果
完成上述修改后重启项目:
- Spring Boot会优先加载正确命名的
application.yml,读取spring.profiles.active=dev配置 - 自动加载
application-dev.yml中的数据库配置 - 检查控制台是否无YAML解析报错,数据库连接功能是否正常
内容的提问来源于stack exchange,提问作者senthil G
相关产品推荐
相关产品推荐

