Spring Integration - MongoDB入站通道读取相同的数据

时间:2017-09-30 12:34:15

标签: java mongodb spring-integration

我需要使用spring集成来查询mongoDB中的数据,我可以查询来自MongoDB的数据,但是同样的数据会被多次返回,

<bean id="mongoDBFactory"
        class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">
        <constructor-arg name="mongo">
            <bean class="com.mongodb.Mongo">
                <constructor-arg name="host" value="localhost" />
                <constructor-arg name="port" value="27017" />
            </bean>
        </constructor-arg>
        <constructor-arg name="databaseName" value="test" />
    </bean>

    <int:channel id="controlChannel"/>

    <int:control-bus input-channel="controlChannel"/>

    <int-mongodb:inbound-channel-adapter
        id="mongoInboundAdapter" channel="splittingChannel" auto-startup= "false" 
        query="{_id:1}" 
        collection-name="order" 
        mongodb-factory="mongoDBFactory">
        <int:poller fixed-rate="10000"  max-messages-per-poll="1000"/>
    </int-mongodb:inbound-channel-adapter>

    <int:splitter input-channel="splittingChannel" output-channel="logger"/>

    <int:logging-channel-adapter id="logger" level="WARN"/>

我正在使用控制通道启动和停止, 请帮助我如何在查询完成后停止入站通道适配器。

提前致谢

1 个答案:

答案 0 :(得分:0)

我建议您使用transaction-synchronization-factory修改或删除文档,而不是停止适配器。有关详细信息,请参阅Reference Manual