Spring Functions Catalog 5.0.0‐M1 已发布

发布 | Artem Bilan | 2024 年 3 月 1 日 | ...

我很高兴代表 Spring Cloud Dataflow 团队向您介绍 Spring Functions Catalog。该项目的主要重点是提供一组独立的 Java 函数,这些函数可以直接在最终用户应用程序中使用。所有发布的工件本质上都是针对某些特定 SupplierFunctionConsumer 的自动配置。

我们刚刚将 5.0.0-M1 发布到 https://repo.spring.io/milestone 仓库,您只需要将此 BOM 包含到您的 Gradle(或 Maven)配置中即可

org.springframework.cloud.fn:spring-function-dependencies:5.0.0-M1

并选择相应的函数作为项目的依赖项。

Spring Functions Catalog 是 Stream Applications 项目的 functions 子模块的品牌重塑(和下一代)。这就是我们从一开始就选择 5.0 作为版本的原因,因为该项目中的所有函数都执行与 Stream Applications 中相同的功能。因此,我们的下一个自然步骤是将 Stream Applications 迁移到使用这个新的 Spring Functions Catalog。

但是,Spring Functions Catalog 的目标不仅仅是为 Stream Applications 提供服务。因为所有这些都是独立的工件,用于对具有特定作业的单个 SupplierFunctionConsumer 进行自动配置,所以这些函数可以简单地添加到类路径中,并在目标项目中按原样使用,或者与其他任务组合使用。这些函数中的大多数都为特定的 Spring Integration 通道适配器 提供自动配置。

以下是一些示例

  • sftpSupplier 连接到 SFTP 服务器并从远程目录轮询文件,并将文件“提供”给您的应用程序
  • kafkaPublisher (java.util.function.Consumer 实现) 将记录生成到 Apache Kafka 主题中
  • aggregatorFunction 根据某些相关键将多个输入分组为一个

在自动配置到 ApplicationContext 中后,这些函数可以注入到目标服务中,并与纯 Java API 组合使用(参见 Function.andThen(Function))。但是,对于 Spring 应用程序来说,更好(更自然)的方法是使用 Spring Cloud Function 项目的功能。例如,来自 Spring Cloud Function Integration 模块的 FunctionFlowBuilder 可以用于为任何复杂的解决方案组合一个 IntegrationFlow。另一种方法是通过 spring.cloud.function.definition 配置属性按名称组合它们。

作为概念证明,项目存储库中的 time-spel-log 示例具有以下依赖项

implementation 'org.springframework.cloud.fn:spring-time-supplier'
implementation 'org.springframework.cloud.fn:spring-spel-function'
implementation 'org.springframework.cloud.fn:spring-log-consumer'

application.yml 具有以下属性

spring:
  cloud:
    function:
      definition: timeSupplier|spelFunction|logConsumer

应用程序逻辑如下所示

@Scheduled(fixedDelay = 1000)
void scheduleFunctionCall() {
  this.composedFunction.run();
}

其中 composedFunction 是来自 FunctionCatalogRunnable,并且是上面提到的 application.yml 中的组合。该应用程序每秒在经过一些转换后将当前时间发送到日志中。

尝试一下 Spring Functions Catalog,欢迎任何反馈或贡献!

从这里开始,我们将在 3 月底推出 RC1,并在 4 月推出 GA

有关 Spring Functions Catalog 的更多信息,请参见 GitHub 存储库

干杯,+ Artem

获取 Spring 新闻简报

通过 Spring 新闻简报保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部