特殊通道
默认情况下,应用上下文中定义了两个特殊通道:errorChannel
和 nullChannel
。nullChannel
(NullChannel
的一个实例)的行为类似于 /dev/null
,会将发送给它的任何消息记录在 DEBUG
级别并立即返回。对于传输消息的 org.reactivestreams.Publisher
负载应用特殊处理:它会立即在此通道中被订阅,以启动响应式流处理,尽管数据会被丢弃。响应式流处理(参见 Subscriber.onError(Throwable)
)中抛出的错误会以 warn
级别记录,以便进行可能的调查。如果需要对这类错误进行处理,可以使用带有 Mono.doOnError()
自定义的 ReactiveRequestHandlerAdvice 应用于向此 nullChannel
生成 Mono
回复的消息处理器。无论何时您遇到不关心的回复的通道解析错误时,都可以将受影响组件的 output-channel
属性设置为 nullChannel
(名称 nullChannel
在应用上下文中是保留的)。
errorChannel
在内部用于发送错误消息,并且可以使用自定义配置进行覆盖。这在错误处理中进行了更详细的讨论。
另请参阅 Java DSL 章中的消息通道,以获取有关消息通道和拦截器的更多信息。