【问题标题】:Why Spring Cloud Dataflow Supplier properties does not appear?为什么没有出现 Spring Cloud Dataflow 供应商属性?
【发布时间】:2020-11-18 09:36:08
【问题描述】:

我有 de Supplier 的配置属性:

@Data
@NoArgsConstructor
@ConfigurationProperties("sybase.supplier")
public class SybaseSupplierProperties {
    private short canal = 0;
    private int pollSize = 10;
}

我将它注入到应用程序中:

@SpringBootApplication
@EnableConfigurationProperties(SybaseSupplierProperties.class)
public class SybaseSupplier {

    private final DataSource dataSource;
    private final SybaseSupplierProperties properties;

    @Autowired
    public SybaseSupplier(DataSource dataSource,
                          SybaseSupplierProperties properties) {
        this.dataSource = dataSource;
        this.properties = properties;
    }
}

我有生成它的 maven 依赖项:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

它被生成为spring-configuration-metadata.json

{
  "groups": [
    {
      "name": "sybase.supplier",
      "type": "br.com.clamed.daflow.apps.sybasesupplier.SybaseSupplierProperties",
      "sourceType": "br.com.clamed.daflow.apps.sybasesupplier.SybaseSupplierProperties"
    }
  ],
  "properties": [
    {
      "name": "sybase.supplier.canal",
      "type": "java.lang.Short",
      "sourceType": "br.com.clamed.daflow.apps.sybasesupplier.SybaseSupplierProperties",
      "defaultValue": 0
    },
    {
      "name": "sybase.supplier.poll-size",
      "type": "java.lang.Integer",
      "sourceType": "br.com.clamed.daflow.apps.sybasesupplier.SybaseSupplierProperties",
      "defaultValue": 10
    }
  ],
  "hints": []
}

application.properties

spring.cloud.stream.function.bindings.intControleSupplier-out-0=output
spring.cloud.function.definition=intControleSupplier

已注册内部 maven repo。

应用已导入:

app register --name jdbc-sybase-supplier --type source --uri maven://br.com.clamed.cloud.dataflow.apps:jdbc-sybase-supplier:1.0.0-SNAPSHOT

当我使用它时,属性不显示:

为什么?

【问题讨论】:

    标签: spring-cloud-dataflow spring-cloud-dataflow-ui


    【解决方案1】:

    当 SCDF 服务器检索应用程序属性时,并非所有来自 spring-configuration-metadata.json 的属性都可用。这是limit 在 UI 上加载的属性数量。但这并不意味着您不能将这些属性设置为应用程序属性。只是这些属性将在 SCDF Web UI 和 shell 完成中作为应用程序属性供您选择。

    在您的情况下,要使您的 SybaseSupplierProperties 可用,您需要添加一个数据流配置文件,该文件指定 SCDF 在加载应用程序时可以检索哪些属性。

    您需要在classpath*:/META-INF/ 中指定spring-configuration-metadata-whitelist.properties(在最近的版本中已弃用)或dataflow-configuration-metadata-whitelist.properties,其中包含要作为应用程序配置属性包含的属性类名称。

    例如,在您的情况下,您需要 /META-INF/dataflow-configuration-metadata-whitelist.properties 中的以下内容:

    configuration-properties.classes=br.com.clamed.daflow.apps.sybasesupplier.SybaseSupplierProperties
    
    

    您也可以查看here 上的文档

    【讨论】:

    • 做到了,但没有成功。我怀疑应用注册指向了错误的地方,因为即使我输入了错误的 maven URL,它也成功注册了应用。
    • 设法让它工作,它被公司防火墙阻止了。 SCDF 无法访问 maven 存储库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多