我必须为现有项目实现 spring 云配置,我有一个用例要处理这里 某些属性文件由其他属性文件引用,例如logging.propFile=classpath:/cfg/xyz.properties,这些属性文件在多个地方使用,例如
属性属性 = 新属性((;property.load(new FileInputStream(propsPath((;logger = somefactory.createfactory(property.get("logging.propFile"((;并且此工厂创建是在另一个 JAR 中定义的。
如果我移动我提到的 git repo 文件中的所有属性文件,则在类路径中将不可用,如果我进行代码更改,则涉及大量代码更改。处理这种情况的最佳方法是什么。有没有办法在 Spring 云配置中将一个属性文件引用到另一个属性文件。
Spring Cloud Config服务器允许通过HTTP读取静态文件。因此,您可以将引用属性文件放入配置 git 存储库中,并通过 http://<configserver_url>/*/*/<branch_name>/xyz.properties
引用它们。这仅在代码可以处理 URL 时才有效,因此示例中的FileInputStream
不会执行此操作。
请参阅 https://cloud.spring.io/spring-cloud-config/multi/multi__serving_alternative_formats.html 和 https://cloud.spring.io/spring-cloud-config/multi/multi__serving_plain_text.html。
另请注意默认为 true
的 resolvePlaceholders
查询参数。
我们使用它来通过设置logging.config: http://<configserver_url/*/*/master/logback.xml?resolvePlaceholders=false
将我们的 logback.xml 配置保留在配置服务器中