我是Spring Boot的新手,并了解@ConfigurationProperties批注如何在没有@Value批注的情况下实现字段值的自动注入(inject)。
@Configuration
@ConfigurationProperties(locations = "classpath:some.properties", prefix = "something")
public class MyConfiguration { .. }
我想使用Groovy的
ConfigSlurper
读取我的属性配置。有没有一种方法可以将@ConfigurationProperties
与自定义属性读取器相关联,这可能是Spring类的一个自定义扩展,用于处理ConfigSlurper
?还是有一种方法可以模拟具有不同功能的相同行为? 最佳答案
那不是@ConfigurationProperties
要做的。 @ConfigurationProperties
绑定(bind)Environment
中可用的任何内容。 locations
属性在1.4中已弃用,并将在以后的版本中删除。
这个想法是您指定一个前缀,并且如果它们是环境中与该前缀匹配的键,我们会在您的POJO中注入(inject)相关属性。如果您想通过该机制使用该基础架构,请删除注释上的locations
属性并更新具有您自己的属性(property)来源的环境。另一个答案为您提供了一种方法,您可以使用EnvironmentPostProcessor
将实现与环境 Hook 。