SpringBoot配置文件使用yml格式时报错,使用properties格式时正常

背景:配置文件使用yml格式时报错,使用properties格式时正常

在 Spring Boot 应用程序中,.properties.yml 都是常用的配置文件格式,它们都可以被 Spring Boot 自动加载并解析。但是在属性解析方面,它们有一些细微的差别。

对于 .properties 文件,Spring Boot 使用 PropertyPlaceholderHelper 类来解析属性值,它会在应用程序启动时扫描配置文件中的 ${...} 占位符,并尝试从环境属性或者配置文件中找到对应的值来替换。

而对于 .yml 文件,Spring Boot 使用的是 YAML 标准库来解析配置。YAML 的语法比较灵活,对于字符串的表示有多种方式,比如 username: rootusername: "root" 都表示相同的字符串 "root"。但是对于像 ${...} 这样的占位符,YAML 本身并不支持,因此 Spring Boot 在 .yml 文件中无法直接使用 ${...} 占位符来引用属性值。

所以,当你使用 .properties 文件时,Spring Boot 能够很好地识别 ${...} 占位符并进行属性解析。而当你使用 .yml 文件时,如果想要实现属性的引用和解析,可以使用 ${...} 占位符的替代方案,比如使用 @Value 注解来注入属性值,或者使用 @ConfigurationProperties 注解来绑定属性到对象。

posted @ 2024-04-22 00:32  燕子去了  阅读(132)  评论(0编辑  收藏  举报

Powered by .NET 8.0 on Kubernetes

我会翻山越岭,到每一个我想去的地方

...