我必须为现有项目实现spring cloud配置,其中我有一个用例来处理这里一些属性文件被其他属性文件引用,例如logging.propFile = classpath:/cfg/xyz.properties,这些属性文件用于多个像。的地方
Properties property = new Properties(); property.load(new FileInputStream(propsPath)); logger = somefactory.createfactory(property.get(“logging.propFile”));并且这个工厂创建在不同的jar中定义。
如果我移动git repo文件中的所有属性文件,我提到的类路径中将不可用,如果我去代码更改,则涉及很多代码更改。处理这种情况的最佳方法是什么。有没有办法在spring cloud配置中将一个属性文件引用到另一个属性文件。
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。
另请注意resolvePlaceholders
查询参数,默认为true
。
我们使用它来通过设置logging.config: http://<configserver_url/*/*/master/logback.xml?resolvePlaceholders=false
来保持配置服务器中的logback.xml配置