spring - 如何配置自定义源来提供 Spring Boot 的 @ConfigurationProperties

标签 spring spring-boot

我是 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/

相关文章:

java - Spring MVC 中的语言环境

java - Spring JDBC 事务副作用

java - 如何从 XSD 创建 pojo 类?

java - org.springframework.beans.factory.UnsatisfiedDependencyException : Error creating bean with name

java - Spring Boot - 我的单元测试被跳过

spring-boot - lettuce客户端连接redis时出现内存泄漏错误

java - spring boot jpa存储库接口(interface)始终返回null

java - sql是否要删除事务中的数据

java - mvn 发布 :prepare in spring boot 时无法将文件提交到 github

java - 在 spring-boot 应用程序中使用 map 与 DTO