动态配置常见问题
动态配置的类型选择
微服务引擎2.0的配置中心支持text、yaml等多种格式。
List对象配置绑定
有些业务使用了List对象配置绑定,例如:
@ConfigurationProperties("example.complex") public class ComplexConfigurationProperties { private List<String> stringList; private List<Model> modelList; ... ... }
对于List对象,Spring Cloud默认都只会从一个PropertySource查询相关的配置项,如果其中一个PropertySource存在配置项的部分值,那么不会再查询其他值。 因此,在使用List对象绑定的时候,和这些List属性相关的配置,都必须全部放到配置中心,不支持部分元素在配置文件,部分元素在配置中心的场景。
可以将这个约束理解为“List配置的原子性”,即一个配置项(代码例子中的stringList或者modelList)不能被分割在不同的配置文件,保证配置项的原子性。