
# 动态配置常见问题
#### 动态配置的类型选择
微服务引擎2.0的配置中心支持text、yaml等多种格式。
- 简单的key-value配置项 可以使用text类型，配置中心的key对应于代码中的key。
  
- 大量的配置 使用yaml格式，配置中心的key会被忽略，全量的key-value在yaml文件中定义。
  ServiceComb引擎1.x不支持yaml格式，可以通过Spring Cloud Huawei适配，来使用yaml，需要在微服务bootstrap中增加如下配置：
  ```
  spring:
    cloud:
      servicecomb:
        config:
          fileSource: consumer.yaml # 需要按照yaml解析的配置项列表，以逗号分隔
  ```
  
- 初次使用ServiceComb引擎2.x 建议选择Spring Cloud Huawei的最新版本，最新版本包含更多的特性并针对历史问题进行了较好的优化。
  
 
#### 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）不能被分割在不同的配置文件，保证配置项的原子性。
