我是 Spring Boot 的新手,正在阅读有关 @ConfigurationProperties 注释如何在没有 @Value 注释的情况下自动注入(inject)字段值的信息。
@Configuration
@ConfigurationProperties(locations = "classpath:some.properties", prefix = "something")
public class MyConfiguration { .. }
我想使用 Groovy 的 ConfigSlurper 来读取我的属性配置。有没有办法将 @ConfigurationProperties 与自定义属性读取器关联,可能是处理 ConfigSlurper 的 Spring 类的自定义扩展?或者有没有办法用不同的功能来模拟相同的行为?
最佳答案
这不是 @ConfigurationProperties
的目的。 @ConfigurationProperties
绑定(bind)Environment
中可用的任何内容。 locations
属性在 1.4 中已弃用,并将在未来版本中删除。
这个想法是,您指定一个前缀,如果它们是与环境中该前缀匹配的键,我们会在您的 POJO 中注入(inject)相关属性。如果您想通过此机制使用该基础设施,请删除 locations注释上的
属性并使用您自己的属性源更新环境。另一个答案为您提供了一种方法,您可以使用 EnvironmentPostProcessor
将您的实现 Hook 到环境。
关于spring - 如何配置自定义源来提供 Spring Boot 的 @ConfigurationProperties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37472838/