Special Channels

默认情况下,应用程序上下文中定义了两个特殊通道:errorChannelnullChannel。'nullChannel'(NullChannel 的实例)的作用类似于 /dev/null,它会记录发送到它的任何消息(DEBUG 级别的),并立即返回。此特别处理用于发送消息的 org.reactivestreams.Publisher 有效负载:它会在该通道中立即订阅,以启动 Reactive Stream 处理,尽管数据会被丢弃。Reactive Stream 处理中出现的错误(参见 Subscriber.onError(Throwable))会记录在 warn 级别,以便进行可能的调查。如果需要处理此类错误,可以将带有 Mono.doOnError() 自定义的 ReactiveRequestHandlerAdvice 应用到消息处理器,生成 Mono 回复,并将其发送至此 nullChannel。每次您遇到您不关心的回复的通道解析错误时,都可以将受影响的组件的 output-channel 属性设置为 'nullChannel'(名称 'nullChannel' 在应用程序上下文中被保留)。

“errorChannel” 在内部用于发送错误消息,并且可以使用自定义配置进行覆盖。在 Error Handling 中更详细地讨论了这一点。

另请参见 Java DSL 一章中的 Message Channels,以了解有关消息通道和拦截器的更多信息。