首页 > 解决方案 > 注入或过滤集合以仅获取输出通道

问题描述

如果我使用

@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

标签: spring-bootspring-cloudspring-cloud-stream

解决方案


以下仅适用于spring-cloud-stream

您不能使用它们过滤它们,@Autowired但如果您注入List<DirectWithAttributesChannel>,则可以确定使用的通道类型getAttribute("type")将是Sink.INPUT或之一Source.OUTPUT


推荐阅读