|
此版本仍在开发中,目前尚不被视为稳定版本。如需最新稳定版本,请使用 spring-cloud-function 5.0.1! |
介绍
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 应用程序,因此可以像其他任何 Spring Boot 应用程序一样,在本地和 CI 构建中进行构建、运行和测试。Function 来自 java.util,而 Flux 是一个来自 Reactive Streams 的 Publisher,由 Project Reactor 提供。该函数可通过 HTTP 或消息传递方式访问。
Spring Cloud Function 具有以下特性:
-
编程风格的选择 - 响应式、命令式或混合式。
-
函数组合与适配(例如,将命令式函数与响应式函数进行组合)。
-
支持具有多个输入和输出的响应式函数,允许通过函数处理合并、连接及其他复杂的流操作。
-
输入和输出的透明类型转换。
-
用于部署的打包功能,特定于目标平台(例如,Project Riff、AWS Lambda 等)
-
适配器,用于将功能暴露给外部世界,例如作为 HTTP 端点等。
-
使用独立类加载器部署包含此类应用上下文的 JAR 文件,以便您可以将它们打包到单个 JVM 中。
-
适用于 AWS Lambda、Azure、Google Cloud Functions 以及其他可能的“无服务器”服务提供商的适配器。