125. Building 和 Running Function
上面的 sample @SpringBootApplication
有一个 function,可以在运行时通过 Spring Cloud Function 作为 HTTP 端点或 Stream 处理器进行修饰,例如使用 RabbitMQ,Apache Kafka 或 JMS。
@Beans
可以是Function
,Consumer
或Supplier
(全部来自java.util
),它们的参数类型可以是 String 或 POJO。如果spring-cloud-function-stream
在 classpath 上,Function
将作为 Spring Cloud Stream Processor
公开。 Consumer
也作为流Sink
公开,Supplier
公开转换为流Source
。如果 Stream binder 是spring-cloud-stream-binder-servlet
,则会公开 HTTP endpoints。
函数可以是Flux<String>
或Flux<Pojo>
和 Spring Cloud Function 负责将数据转换为所需类型的数据,如同纯文本或(在 POJO 的情况下)JSON 一样。 TBD:支持Flux<Message<Pojo>>
和可能是普通的Pojo
类型(由 framework 暗示和实现的 Fluxes)。
函数可以在单个 application 中组合在一起,也可以部署 one-per-jar。这取决于开发人员的选择。具有多种功能的应用程序可以在不同的“个性”中多次部署,从而在不同的物理传输上暴露不同的功能。