Closed develpoerX closed 1 year ago
可以用instanceof来判断是string还是list。
@SuppressWarnings("unchecked")
public List<String> getFileSources() {
Object property = finalConfig.getProperty(FILE_SOURCE);
if (property instanceof String) {
List<String> result = new ArrayList<>();
result.add((String) property);
return result;
} else if (property instanceof List) {
return (List<String>) property;
}
return new ArrayList<>();
}
getProperty时,placeholder无法发挥作用
可以尝试一下直接使用spirng的enviorment读取
close old issues, please feel free to submit a new one if the problem still exists.
问题描述: 微服务配置文件microservice.yaml文件中配置项参数值中存在逗号时,解析成数组。eg:在配置文件中写: hello: sayHelloPrefix: "Hello, ft" 使用DynamicPropertyFactory.getInstance().getStringproperty(“hello.sayHelloPrefix”, "")时,获取到的结果为Hello,ft,中间空格被删除。通过定位发现,配置文件参数值,在传递过程中,会经过com.netflix.config包中的ConcurrentMapConfiguration.java文件中的addPropertyImpl(String key, Object value)解析时,默认将value中的逗号解析成数组的形式。