Spring cloud Spring云数据流应用程序中的应用程序属性

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

根据Spring Cloud Data Flow(SCDF)文档,在将应用程序(无论是源、处理器还是接收器)作为流的一部分进行部署时,仅考虑前缀为“deployed.”或“app.”的属性

但是,我注意到,除了前缀之外,所有属性都必须作为“字符串”提供,不管它们的原始类型是什么;否则,SCDF将根据以下代码行简单地丢弃它们:

    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


我认为其中一个原因是使用字符串键,将值传递到目标部署平台而不存在序列化/反序列化障碍。而且,使用字符串值与在目标部署平台中将这些键、值属性设置为环境变量(例如)的方式类似。

是的,这非常合理。是的,这非常合理。