我有:
inner:
system:
number: "01"
id: "ID"
@Configuration
@ConfigurationProperties(prefix = "inner.number")
@Slf4j(topic = "Configuration Properties Logger")
@Data
public class ConfigurationProperties {
private String number;
@Value("${inner.system.id})
private String id;
}
并且所有内容均已正确加载。
但是如果我将
@Value("${inner.system.id})
更改为 @Value("${id})
(由于指定的前缀 "inner.number"
),它会失败。
我真的很困惑。
这是正确的行为还是我的项目中配置不正确?
看起来配置有一个小错误。应该是,
@Configuration
@ConfigurationProperties(prefix = "inner.system")
....
@Value
注释需要完整的属性路径,包括前缀。在这种情况下,完整的属性路径是 inner.system.id
在您的情况下,正确的注释将是 @Value("${inner.system.id}") 因为完整路径是“inner.system.id。”