此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-function 4.1.4! |
介绍
Spring Cloud Function 是一个具有以下高级目标的项目:
-
通过函数促进业务逻辑的实现。
-
将业务逻辑的开发生命周期与任何特定的运行时目标分离,以便相同的代码可以作为 Web 终端节点、流处理器或任务运行。
-
支持跨无服务器提供商的统一编程模型,以及独立运行(本地或在 PaaS 中)的能力。
-
在无服务器提供商上启用 Spring Boot 功能(自动配置、依赖项注入、指标)。
它抽象出所有传输细节和 基础架构,使开发人员能够保留所有熟悉的工具 和流程,并坚定地关注业务逻辑。
这是一个完整的、可执行的、可测试的 Spring Boot 应用程序 (实现简单的字符串操作):
@SpringBootApplication
public class Application {
@Bean
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
它只是一个 Spring Boot 应用程序,因此可以构建、运行和
在本地和 CI 构建中进行测试,与任何其他 Spring 一样
引导应用程序。它来自 和 是来自 Project Reactor 的反应流。该函数可以是
通过 HTTP 或消息传递访问。Function
java.util
Flux
Publisher
Spring Cloud Function 具有以下特点:
-
编程风格的选择 - 反应式、命令式或混合式。
-
函数组合和适应(例如,使用 reactive 组合命令式函数)。
-
支持具有多个输入和输出的响应式函数,允许函数处理合并、联接和其他复杂的流操作。
-
输入和输出的透明类型转换。
-
打包特定于目标平台的部署函数(例如 Project Riff、AWS Lambda 等)
-
适配器,用于将函数作为 HTTP 端点等公开给外部世界。
-
使用隔离的类加载器部署包含此类应用程序上下文的 JAR 文件,以便您可以将它们打包到单个 JVM 中。
-
适用于 AWS Lambda、Azure、Google Cloud Functions 以及可能的其他“无服务器”服务提供商的适配器。