将 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 配置中没有 chain
等效项。它是专为 XML 设计的,可以最大限度地减少 XML 编码。
另一方面,您似乎根本不需要 <chain>
:您那里只有一个 <int:transformer>
。
在 Java 配置中,您将在 mailSendErrorTransformer
方法上使用 @Trasnoformer
注释,并具有适当的 inputChannel
和 outputChannel
属性。 <int:poller>
等价物也作为 poller
属性存在于那里,具有可切除的 @Poller
配置。
从此处开始在文档中查看更多信息:https://docs.spring.io/spring-integration/docs/current/reference/html/overview.html#configuration-enable-integration
我在 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 配置中没有 chain
等效项。它是专为 XML 设计的,可以最大限度地减少 XML 编码。
另一方面,您似乎根本不需要 <chain>
:您那里只有一个 <int:transformer>
。
在 Java 配置中,您将在 mailSendErrorTransformer
方法上使用 @Trasnoformer
注释,并具有适当的 inputChannel
和 outputChannel
属性。 <int:poller>
等价物也作为 poller
属性存在于那里,具有可切除的 @Poller
配置。
从此处开始在文档中查看更多信息:https://docs.spring.io/spring-integration/docs/current/reference/html/overview.html#configuration-enable-integration