使用带有驼峰式前缀的 ConfigurationProperties 时,如何解决“前缀必须采用规范形式”?

ojc*_*ase 22 spring-boot

我在 yml 中配置了一个属性

foobar:
  baz: 7
Run Code Online (Sandbox Code Playgroud)

和一个带有注释的配置类

@ConfigurationProperties(prefix = "foobar")
Run Code Online (Sandbox Code Playgroud)

一切都工作正常。

我的组织中的代码通常是驼峰命名法,因此我将属性和前缀都重命名为fooBar. IntelliJ 现在突出显示prefix = "foobar"包含错误的行:“前缀必须采用规范形式”。在 yml 配置中保留camelCasing 的同时我能做什么?

ojc*_*ase 32

Spring Boot 支持多种格式的属性名称,但鼓励您以规范的方式访问它们。

\n

Spring Boot 2.0 中的每个属性绑定

\n
\n

事实证明,如果将其限制在一个方向,则宽松的属性名称的想法更容易实现。您应该始终使用规范形式访问代码中的属性,无论它们在底层源中如何表示。

\n

ConfigurationPropertyName 类强制执行这些规范命名规则,这些规则基本上可以归结为 \xe2\x80\x9cuse 小写短横线命名 \xe2\x80\x9d。

\n

因此,例如,即使基础源中使用了 person.firstName 或 PERSON_FIRSTNAME,您也应该将代码中的属性引用为 person.first-name。

\n
\n

您可以将配置 yml 保存在驼峰式大小写中:

\n
fooBar:\n  baz: 7\n
Run Code Online (Sandbox Code Playgroud)\n

但更改配置类注释中的访问以使用 kebab-case:

\n
@ConfigurationProperties(prefix = "foo-bar")\n
Run Code Online (Sandbox Code Playgroud)\n