簡體   English   中英

將 Spring xml 配置轉換為 java

[英]Converting Spring xml config to java

我在 spring 中有一個用於郵件服務的 XML 配置,我想將其轉換為 JAVA 配置。

XML 看起來像這樣

<int:chain id="chain"
           input-channel="outMailError"
    output-channel="outMailEntry">
    <int:poller max-messages-per-poll="1" fixed-rate="20000" />
    <int:transformer ref="mailSendErrorTransformer" />
</int:chain>

<int:channel id="outMailError">
    <int:queue capacity="500" />
</int:channel>

<int:channel id="outboundMailEntry" />

我能夠將頻道轉換為

@Bean
public DirectChannel outboundMailEntry() {
    return new DirectChannel();
}

@Bean
public QueueChannel outboundMailErrorChannel() {
    return new QueueChannel(500);
}

但我不知道如何為 int:chain 做同樣的事情。 我能夠調試並找出 spring 為 xml 的“鏈”部分實例化什么類型的 bean - 它是PollingConsumer需要 2 個參數PollableChannel inputChannel, MessageHandler handler

第一個不是問題,因為我已經有了,它是

@Qualifier("outMailError")
QueueChannel channel

但我不知道第二個... Spring 本身初始化了一些MessageHandlerChain但我無法將outMailEntry設置為它,也不知道輪詢器和變壓器..有什么想法嗎?

Java Config 中沒有等效chain 它專為 XML 設計,以最大限度地減少 XML 編碼。

另一方面,看起來你根本不需要那個<chain> :你那里只有一個<int:transformer>

在 Java 配置中,您將在具有適當inputChanneloutputChannel屬性的mailSendErrorTransformer方法上使用@Trasnoformer注釋。 <int:poller>等價物也作為poller屬性存在於那里,具有相應的@Poller配置。

從這里開始查看文檔中的更多信息: https://docs.spring.io/spring-integration/docs/current/reference/html/overview.html#configuration-enable-integration

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM