Spring Integration reference guide是指使用MessageStore实现为QueueChannel提供持久性。
提到了很多次,但是所有示例都使用XML配置,即
<int:channel id="dbBackedChannel">
<int:queue message-store="channelStore"/>
</int:channel>
<bean id="channelStore" class="o.s.i.jdbc.store.JdbcChannelMessageStore">
<property name="dataSource" ref="dataSource"/>
<property name="channelMessageStoreQueryProvider" ref="queryProvider"/>
</bean>
但是QueueChannel的实现没有用于设置MessageStore的方法
那么,如何在不使用XML配置的情况下使用MessageStore创建QueueChannel?
最佳答案
反向工程XML配置的工作,这就是答案。
您将MessageStore包装在MessageGroupQueue中
所以看起来像这样
@Bean
public MessageChannel messageStoreBackedChannel() {
return new QueueChannel(
new MessageGroupQueue(<<MessageStoreImplementation>>, "Group ID")
);
}