首页 文章

Spring Integration Java DSL中的JPA出站通道适配器配置

提问于
浏览
2

我发现Spring Integration Java DSL中仍然没有JPA高级支持
Example Spring integration DSL for JPA Inbound Channel adapter

但是如何在低级别配置JPA出站通道适配器?

例如 . 在XML中创建这样的Java DSL配置

<int-jpa:outbound-channel-adapter id="moduleMessagePersister" channel="inputPersisterChannel" persist-mode="MERGE" entity-manager-factory="entityManagerFactory">
    <int-jpa:transactional transaction-manager="transactionManager"/>
</int-jpa:outbound-channel-adapter>

1 回答

  • 3

    我记得承诺的贡献:-) .

    回覆 . <int-jpa:outbound-channel-adapter>

    • 任何此类XML组件都是特定 MessageHandler 的消费者 endpoints .

    • 查看Core项目中的最新更改,以帮助用户确定要用于Java和Annotation配置的内容 . 因此对于Java DSL也是如此:https://jira.spring.io/browse/INT-3964

    所以,对于这个特殊元素,我们有:

    <xsd:documentation>
        Configures a Consumer Endpoint for the
        'org.springframework.integration.jpa.outbound.JpaOutboundGatewayFactoryBean' (one-way)
        updating a database using the Java Persistence API (JPA).
    </xsd:documentation>
    

    因此我们必须配置类似的东西

    @Bean
    public FactoryBean<MessageHandler> jpaMessageHandler() {
        JpaOutboundGatewayFactoryBean factoryBean = new JpaOutboundGatewayFactoryBean();
        ...
        factoryBean.setProducesReply(false);
        return factoryBean;
    }
    

    并从DSL使用它:

    @Bean
    public IntegrationFlow jpaFlow(MessageHandler jpaMessageHandler) {
          ...
          .handle(jpaMessageHandler)
          .get();
    }
    

    让我知道应该记录什么!

    是的:我们肯定应该在下一个1.2 Java DSL版本中使用JPA适配器......

相关问题