一尘不染

如何配置自定义源以提供Spring Boot的@ConfigurationProperties

spring-boot

我是Spring Boot的新手,并了解@ConfigurationProperties批注如何在没有@Value批注的情况下实现字段值的自动注入。

@Configuration
@ConfigurationProperties(locations = "classpath:some.properties", prefix = "something")
public class MyConfiguration { .. }

我想使用Groovy
ConfigSlurper读取我的属性配置。是否有一种@ConfigurationProperties与自定义属性读取器关联的方法,可能是处理的Spring类的自定义扩展ConfigSlurper?还是有一种方法可以模拟具有不同功能的相同行为?


阅读 474

收藏
2020-05-30

共1个答案

一尘不染

那不是@ConfigurationProperties应该做的。@ConfigurationProperties绑定从中可用的任何内容Environment。该locations属性在1.4中已弃用,并将在以后的版本中删除。

这个想法是您指定一个前缀,如果它们是环境中与该前缀匹配的键,我们会在您的POJO中注入相关属性。如果您想通过该机制使用该基础架构,请删除locations注释上的属性并更新您自己的财产来源的环境。另一个答案为您提供了一种方法,您可以使用将EnvironmentPostProcessor您的实现与环境挂钩。

2020-05-30