Java 11和Spring Integration 5.x在这里。目前我在每个IntegrationFlow
上指定错误通道如下:
@Bean
public IntegrationFlow flow1(MessageChannel channel1) {
return IntegrationFlows.from(channel1)
.enrichHeaders(h -> h.header("errorChannel", ERRORS_CHANNEL_NAME))
// do stuff
.get();
}
@Bean
public IntegrationFlow flow2(MessageChannel channel2) {
return IntegrationFlows.from(channel2)
.enrichHeaders(h -> h.header("errorChannel", ERRORS_CHANNEL_NAME))
// do stuff
.get();
}
@Bean
public IntegrationFlow flow3(MessageChannel channel3) {
return IntegrationFlows.from(channel3)
.enrichHeaders(h -> h.header("errorChannel", ERRORS_CHANNEL_NAME))
// do stuff
.get();
}
有没有一种方法可以设置一个“全局”错误通道,并默认使用它,这样我就不必在每个流中重新定义要使用的错误通道?
1条答案
按热度按时间chhqkbe11#
框架中有一个适合你的:https://docs.spring.io/spring-integration/docs/current/reference/html/core.html#channel-special-channels。
然而,请按照错误处理的链接。在消息处理中的任何错误并不总是进入错误通道。
为了方便起见,还有一个
HeaderEnricherSpec.errorChannel()
API:我不知道你为什么要用header("errorChannel")
...