126. 构建和运行功能

上面的示例@SpringBootApplication具有可以在运行时由 Spring Cloud Function 修饰为 HTTP 端点或流处理器(例如,使用 RabbitMQ,Apache Kafka 或 JMS)的功能。

@Beans可以是FunctionConsumerSupplier(均来自java.util),其参数类型可以是 String 或 POJO。

函数也可以是Flux<String>Flux<Pojo>,并且 Spring Cloud Function 会负责将数据与所需类型之间来回转换,只要它们以纯文本或(对于 POJO)JSON 形式出现即可。还支持Message<Pojo>,其中从接收的事件中复制消息头,具体取决于适配器。 Web 适配器还支持从表单编码数据到Map的转换,并且如果您将该功能与 Spring Cloud Stream 一起使用,则消息有效负载的所有转换和强制功能也将适用。

可以将功能组合到一个应用程序中,也可以每个 jar 部署一个。由开发人员选择。具有多种功能的应用程序可以以不同的“个性”多次部署,从而在不同的物理传输方式上暴露出不同的功能。