![](/img/trans.png)
[英]JSON or Pipe(|) based DSL for dynamic flow generation in Spring Integration
[英]Spring Integration DSL adding mid flow transaction
我想将流程的特定部分设为事务性。 例如,我想在一个事务块中进行前两个转换操作。 这是我使用的流程代码:
@Bean
public IntegrationFlow createNumberRange() {
return IntegrationFlows.from("npEventPubSubChannel")
.transform(...)
.transform(...)// should be transactional with above transform together
.transform(...) // non transactional
.handle((payload, headers) -> numbRepository.saveAll(payload))
.get();
}
我找到了一种解决方法,即添加另一个句柄并将流定向到这样的事务网关:
.handle("transactionalBean", "transactionalMetod") //Then implemented messagingGateway which consists of transactional method.
我还找到了中流事务支持,但找不到可以处理的示例。
是否有一个优雅的解决方案,而不是在流程中间指向另一个网关?
如果您想将两个转换器包装到事务中,除非将该调用隐藏在事务网关之后,否则您别无选择。 当您执行原始 Java 时,这完全相似:
@Transactional
void myTransactionalMethod() {
transform1();
transform2();
}
我相信你同意我的看法,我们总是必须这样做才能让他们在同一笔交易中。
使用 Spring Integration Java DSL,您可以做到这一点:
.gateway(f -> f
.transform(...)
.transform(...),
e -> e.transactional())
您是否同意它与我们在原始 Java 中所拥有的相似,并且从优雅的角度来看并没有那么糟糕?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.