搶先一步
VMware 提供培訓和認證,可加速您的進度。
瞭解更多我們很高興宣布 Spring Cloud Stream Fishtown 發布系列的第一个候選版本 - Fishtown.RC1/2.1.0.RC1。
Spring Cloud Stream Fishtown 2.1.0.RC1 可在 Spring Milestone 儲存庫中使用。
以下章節提供了此版本中包含的功能和改進的簡要摘要。
此版本的主要主題是引入一種新的編程模型,該模型使用 Spring Cloud Function 作為定義流處理程序和來源的替代方法,現在可以將其表示為 java.util.function.[Supplier/Function/Consumer]
类型的 bean
要指定將哪個功能 bean 綁定到綁定公開的外部目的地,您必須提供 spring.cloud.stream.function.definition
屬性。
以下是將訊息處理程序公開為 java.util.function.Function
的 Processor 應用程式範例
@SpringBootApplication
@EnableBinding(Processor.class)
public class MyFunctionBootApp {
public static void main(String[] args) {
SpringApplication.run(MyFunctionBootApp.class,
"--spring.cloud.stream.function.definition=toUpperCase");
}
@Bean
public Function<String, String> toUpperCase() {
return s -> s.toUpperCase();
}
}
在上面的範例中,我們只是定義一個名為 toUpperCase 的 java.util.function.Function
類型的 bean,並將其識別為用作訊息處理程序的 bean,其輸入和輸出將綁定到 Processor 綁定公開的外部目的地。
使用此編程模型,您還可以從函數組合中受益,您可以從一組簡單的函數中動態組合複雜的處理程序。 例如,將以下函數 bean 添加到上面定義的應用程式
@Bean
public Function<String, String> wrapInQuotes() {
return s -> "\"" + s + "\"";
}
並修改 spring.cloud.stream.function.definition
屬性以反映您想要從 toUpperCase 和 wrapInQuotes 組合一個新函數的意圖。 為此,Spring Cloud Function 允許您使用 |
(pipe) 符號。 因此,要完成我們的範例,我們的屬性現在將如下所示
--spring.cloud.stream.function.definition=toUpperCase|wrapInQuotes
除了 M1 和 M2 中的變更和改進之外,這是此 版本的改進列表
除了 M1 和 M2 中的變更和改進之外,這是此 版本的改進列表
除了 M1 和 M2 中的變更和改進之外,這是此 版本的改進列表
作為不斷努力提高代碼品質並評估框架組件的合約正確性的一部分,我們有一個新的 驗收測試專案,用於在 Cloud Foundry 和 Kubernetes 上引導 Spring Cloud Stream 應用程式。 這些測試每天在全新重鋪的環境中運行多次。 我們希望這能為社群和客戶在目標平台上構建更多自動化管道提供基礎。
在此版本中,我們還想強調最近發布的 Kinesis 綁定器
注意
如果應用程式是從 Spring Initializr 建立的,則它們需要在 spring-cloud BOM 宣告之前在 maven 依賴項管理中添加此 BOM 片段,否則您最終會得到最新的快照 (因為它包含 M2 中的所有工作,這可能沒問題)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-dependencies</artifactId>
<version>Fishtown.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
RC2 計劃在幾週內發布,然後是 Fishtown.RELEASE。
與往常一樣,我們歡迎您的回饋和貢獻,因此請透過 Stackoverflow 或 GitHub 或透過 Gitter 與我們聯繫。