Spring cloud Spring云数据流应用程序中的应用程序属性
根据Spring Cloud Data Flow(SCDF)文档,在将应用程序(无论是源、处理器还是接收器)作为流的一部分进行部署时,仅考虑前缀为“deployed.”或“app.”的属性 但是,我注意到,除了前缀之外,所有属性都必须作为“字符串”提供,不管它们的原始类型是什么;否则,SCDF将根据以下代码行简单地丢弃它们:Spring cloud Spring云数据流应用程序中的应用程序属性,spring-cloud,spring-cloud-stream,spring-cloud-dataflow,Spring Cloud,Spring Cloud Stream,Spring Cloud Dataflow,根据Spring Cloud Data Flow(SCDF)文档,在将应用程序(无论是源、处理器还是接收器)作为流的一部分进行部署时,仅考虑前缀为“deployed.”或“app.”的属性 但是,我注意到,除了前缀之外,所有属性都必须作为“字符串”提供,不管它们的原始类型是什么;否则,SCDF将根据以下代码行简单地丢弃它们: propertiesToUse = DeploymentPropertiesUtils.convert(props); 这是什么意思 public static
propertiesToUse = DeploymentPropertiesUtils.convert(props);
这是什么意思
public static Map<String, String> convert(Properties properties) {
Map<String, String> result = new HashMap<>(properties.size());
for (String key : properties.stringPropertyNames()) {
result.put(key, properties.getProperty(key));
}
return result;
}
公共静态映射转换(属性){
映射结果=新的HashMap(properties.size());
for(字符串键:properties.stringPropertyNames()){
put(key,properties.getProperty(key));
}
返回结果;
}
正如您从上面的代码片段中所看到的,它只考虑“stringPropertyNames”,它过滤掉任何未作为“字符串”提供的内容
我认为这种行为是故意的,但为什么呢?为什么不选择用户定义的所有具有正确前缀的属性呢
感谢您的支持。所有部署属性都应该是基于部署者SPI设置的
Map
我认为其中一个原因是使用字符串键,将值传递到目标部署平台而不存在序列化/反序列化障碍。而且,使用字符串值与在目标部署平台中将这些键、值属性设置为环境变量(例如)的方式类似。根据部署人员SPI的设置,所有部署属性都应为
Map
我认为其中一个原因是使用字符串键,将值传递到目标部署平台而不存在序列化/反序列化障碍。而且,使用字符串值与在目标部署平台中将这些键、值属性设置为环境变量(例如)的方式类似。是的,这非常合理。是的,这非常合理。