Spring Integration JDBC入站adpater

时间:2018-04-18 11:54:58

标签: java spring-integration

我必须从数据库中读取行并将行传递给服务激活器
在rowmapper的帮助下发送带有我们自己的框架的邮件,我们可以实现,问题是我们需要使用动态状态和errorstackstrace更新相应行的列,具体取决于服务激活方法的成功或失败。

<int-jdbc:inbound-channel-adapter id="emailReqestChannel"
        query="select * from email_requests where email_request_status = 'NEW'"
        update="update email_requests set email_request_status = 'SUCCESS' where email_request_id in (:email)"
        max-rows-per-poll="10"
        data-source="dataSource" row-mapper="emailRequestRowMapper">
    <int:poller fixed-rate="1000">
        <int:transactional />
    </int:poller>
</int-jdbc:inbound-channel-adapter>
<int:service-activator input-channel="emailReqestChannel" ref="emailRequestMessageHandler" />
<bean id="jdbcMessageHandler"
        class="com.company.selfservice.jdbc.handler.JdbcMessageHandler" />
<bean id="emailRequestMessageHandler"
        class="com.company.selfservice.jdbc.handler.EmailRequestMessageHandler" />
<bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>
<int:poller default="true" fixed-rate="10000"/>
<int:channel id="dataChannel">
    <int:queue />
</int:channel>
<int:channel id="emailReqestChannel">
    <int:queue />
</int:channel>
<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
    <property name="url" value="${database.connection_url}" />
    <property name="username" value="${database.user}" />
    <property name="password" value="${database.password}" />
</bean>
<bean id="emailRequestRowMapper"
        class="com.company.selfservice.jdbc.handler.EmailRequestRowMapper" />

1 个答案:

答案 0 :(得分:0)

如果故事是关于dynamic status and errorstackstrace depending success or failure的,那么您不应该使用update中的<int-jdbc:inbound-channel-adapter>,但是真的考虑使用<int-jdbc:outpbund-channel-adapter>,那里有你可以针对请求消息解析查询参数:https://docs.spring.io/spring-integration/docs/5.0.4.RELEASE/reference/html/jdbc.html#jdbc-outbound-channel-adapter