注入或过滤收集仅获取输出通道

时间:2020-09-22 12:02:43

标签: spring-boot spring-cloud spring-cloud-stream

如果我使用

@Autowired
List<MessageChannel> messageChannels;

我得到所有频道。 通道既是输入,也是输出。 我怎么只能在这里获得outputs个频道?

该对象的类为org.springframework.integration.channel.DirectChannel

我想摆脱被标记为@Input的类的对象 instanceof org.springframework.messaging.SubscribableChannel

messageChannels的每个对象给出:

object instanceof org.springframework.messaging.MessageChannel = true
object instanceof org.springframework.messaging.SubscribableChannel = true

我不想用name过滤它们。

1 个答案:

答案 0 :(得分:0)

以下内容仅适用于spring-cloud-stream

您无法使用@Autowired过滤它们,但是如果注入List<DirectWithAttributesChannel>,则可以使用getAttribute("type")确定频道类型,该类型将是Sink.INPUT或{{1}中的一个}。