我在yml中配置了一个属性
foobar:
baz: 7
以及一个配置类,
@ConfigurationProperties(prefix = "foobar")
一切正常
我的组织中的代码通常是camelCase,因此我将属性和前缀都重命名为fooBar
。IntelliJ现在突出显示prefix = "foobar"
行,并显示错误“Prefix must be in canonical form”。在yml配置中保留camelCasing的同时,我能做什么?
我在yml中配置了一个属性
foobar:
baz: 7
以及一个配置类,
@ConfigurationProperties(prefix = "foobar")
一切正常
我的组织中的代码通常是camelCase,因此我将属性和前缀都重命名为fooBar
。IntelliJ现在突出显示prefix = "foobar"
行,并显示错误“Prefix must be in canonical form”。在yml配置中保留camelCasing的同时,我能做什么?
2条答案
按热度按时间vh0rcniy1#
Sping Boot 支持多种格式的属性名称,但鼓励您以规范的方式访问它们。
根据Property Binding in Spring Boot 2.0:
结果表明,如果您将其限制在一个方向上,那么放松属性名称的想法更容易实现。应始终使用规范形式访问代码中的属性,而不管它们在基础源代码中的表示方式。
ConfigurationPropertyName类强制执行这些规范的命名规则,基本上可以归结为“使用小写的kebab-case名称”。
因此,例如,您应该将代码中的属性称为person。名字即使是人。firstName或PERSON_FIRSTNAME在基础源中使用。
您可以使用camel case来保存配置yml:
但将配置类注解中的访问更改为使用kebab-case:
rslzwgfq2#
规范名称应该是kebab-case错误是什么意思?
简短回答:它只是意味着规范名称(* 唯一标识属性的属性名称 *)应该是kebab案例。
这意味着 prefix 中遵循的命名约定应该强制使用kebab大小写。
示例:
然后,我们需要向www. example添加一个自定义属性(名称) www.example.com 文件如下:
烤肉串肠衣的优势
我们有四种类型的套管可供选择,即:
我们可以在属性文件中使用这些样式中的任何一种,而在访问它们时,我们只需要遵循kebab大小写即可。
例如,通过
我们可以访问camelCasing
或PascalCasing
或snake_casing
或者烤肉串肠衣