124. Introduction
Spring Cloud Function 是一个具有以下高级目标的项目:
-
通过功能促进业务逻辑的实现。
-
将业务逻辑的开发生命周期与任何特定的运行时目标脱钩,以便可以将相同的代码作为 Web 终结点,流处理器或任务来运行。
-
支持跨无服务器提供程序的统一编程模型,以及独立运行(本地或在 PaaS 中)的能力。
-
在无服务器提供程序上启用 Spring Boot 功能(自动配置,依赖项注入,Metrics)。
它抽象出所有传输细节和基础结构,使开发人员可以保留所有熟悉的工具和流程,并专注于业务逻辑。
这是一个完整的,可执行的,可测试的 Spring Boot 应用程序(实现简单的字符串操作):
@SpringBootApplication
public class Application {
@Bean
public Function<Flux<String>, Flux<String>> uppercase() {
return flux -> flux.map(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 具有 4 个主要功能:
-
@Beans
类型Function
,Consumer
和Supplier
的包装器,将它们作为 HTTP 端点和/或具有 RabbitMQ,Kafka 等的消息流侦听器/发布器暴露给外界。 -
将作为 Java 函数体的字符串编译为字节码,然后将它们转换为
@Beans
,可以如上所述进行包装。 -
使用隔离的类装入器部署包含此类应用程序上下文的 JAR 文件,以便可以将它们打包在一起在单个 JVM 中。
-
AWS Lambda,Azure,Apache OpenWhisk以及其他“无服务器”服务提供者的适配器。
Note
Spring Cloud 是根据非限制性 Apache 2.0 许可发布的。如果您想为文档的这一部分做出贡献或发现错误,请在项目github处找到源代码并发布跟踪程序。