spring-boot - 注入或过滤集合以仅获取输出通道
问题描述
如果我使用
@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-cloud-stream
:
您不能使用它们过滤它们,@Autowired
但如果您注入List<DirectWithAttributesChannel>
,则可以确定使用的通道类型getAttribute("type")
将是Sink.INPUT
或之一Source.OUTPUT
。
推荐阅读
- php - PHP根据文件类型验证上传和转换文件
- recursion - 为什么递归函数中的计数总是需要两个参数?
- reactjs - React Spotify App无法读取未定义的属性“项目”
- sparql - 在 Wikidata SPARQL 中,我如何返回其他字段?
- java - 无法将用户添加到数据库
- javascript - 模拟如何从 axios 抛出
- angular - 在Angular中获取(HTTP-Get)多个类对象
- forms - 来自 DLL 的 Delphi 模态表单:编辑字段没有插入符号 - 如何显示插入符号?
- swift - Swift - 向上滚动约 50% 时集合标题视图消失?
- c# - 谁能告诉我为什么这个 linq 查询不起作用?