取得領先
VMware 提供培訓和認證,以加速您的進度。
瞭解更多我很高興宣佈 Spring Integration 的 Java DSL 1.2 M1
現已推出!
首先,我要感謝所有建立 issue、提出 Pull Requests、提供回饋或僅在 StackOverflow 上提問的人。沒有社群,我們不可能成為今天如此成功的專案!
org.springframework.integration:spring-integration-java-dsl:1.2.0.M1
構件可在 Milestone repo 中找到。所以,試用一下,並隨時提出 GH issue 以獲得任何回饋!
目前迭代的一些亮點
基於最近發佈的 Spring for Apache Kafka 專案,引入了一個新的 Kafka09
工廠。這是簡單明瞭的 Java DSL 工廠,用於產生 IntegrationComponentSpec
fluent API builders,適用於基於 Spring for Apache Kafka 基礎的 adapters。 為了向後相容,仍然存在用於 Apache Kafka 0.8
支援的現有 Kafka
工廠。
在許多情況下,最好根據系統狀態甚至在某些業務功能調用期間指定集成流程。 甚至使其在執行後失效。 為此,引入了 IntegrationFlowContext
組件,以允許手動 IntegrationFlow
控制。
@Autowired
private IntegrationFlowContext context;
...
IntegrationFlow myFlow = f -> f
.<String, String>transform(String::toUpperCase)
.transform("Hello, "::concat);
String flowId = this.context.register(myFlow);
MessagingTemplate messagingTemplate = this.context.messagingTemplateFor(flowId);
assertEquals("Hello, SPRING",
messagingTemplate.convertSendAndReceive("spring", String.class));
this.context.remove(flowId);
有關更多資訊,請參閱 IntegrationFlowContext
JavaDocs。
為了方便地以 Spring Integration 的方式記錄訊息傳輸過程 (a-la <logging-channel-adapter>
),引入了一個新的 log()
operator。 在底層,它僅由 WireTap
ChannelInterceptor
和 LoggingHandler
作為訂閱者表示。 它負責記錄傳入下一個端點的訊息
.filter(...)
.log(LoggingHandler.Level.ERROR, "test.category", m -> m.getHeaders().getId())
.route(...)
在此範例中,只有在訊息通過篩選器之後且在路由之前,才會以 ERROR
層級將 id
標頭記錄到 "test.category"。
已為 MessageChannelSpec
builders 引入了 .wireTap()
fluent API。 現在,目標配置可以從 Java DSL 的使用中獲得更多好處
@Bean
public QueueChannelSpec myChannel() {
return MessageChannels
.queue()
.wireTap("loggingFlow.input");
}
@Bean
public IntegrationFlow loggingFlow() {
return f -> f.log();
}
對於 bean 的純 Java 實例化來說,將路由鍵作為任何所需的類型並避免將所有內容轉換為 String
似乎已經足夠有機。 此外,類型放寬讓我們可以將配置作為泛型感知
@Bean
public IntegrationFlow payloadTypeRouteFlow() {
return f -> f
.<Object, Class>route(Object::getClass, m -> m
.channelMapping(String.class, "stringsChannel")
.channelMapping(Integer.class, "integersChannel"));
}
有關 1.2.0.M1
版本的更多資訊,請參閱 commit history。
維護版本 1.1.3
也已發佈,其中包含多個嚴重的錯誤修正和 Spring Integration 4.3 相容性。 org.springframework.integration:spring-integration-java-dsl:1.1.3.RELEASE
構件可在 repo.spring.io 和 Maven Central 中找到。 建議所有人升級,尤其是在您使用 JMS
工廠和實作 ApplicationListener
的 bean 時。
我們預計很快就會推出版本 1.2
的下一個 Milestone 2,大約幾週後,並在 8 月中旬左右推出 RC 和正式版本。 同時,我們將把 spring-integration-java-dsl
專案吸收到版本 5.0
和 Java 8 代碼庫的 Spring Integration Core 中。 目前的 1.2
版本仍將受到支援,但僅用於錯誤修正。