谁能告诉我下面的代码段是否可行?我希望能够在不知道特定输出渠道的情况下路由到任意数量的收件人。其他人会定义它,而我的流程只需要路由到它。
我知道我可以使用标头值路由器并让消息始发者填充它,但是我更希望自己找到它。我想在很多地方使用表达式来定义out通道,但是在大多数情况下这似乎是不可能的。我能够执行类似操作的一个示例是使用“目标表达式”属性使用jms通道适配器,并且我也想在路由器上应用相同类型的过程。
对。RecipientListRouter
甚至没有任何Mapping路由器是不可能的,因为您的“愿望”违反了“映射”原则。
但是,RouterFactoryBean
当您提供POJO及其方法时,通用路由器()可以应用的列表MessageChannel
。像这样:
<int:router input-channel="input" ref="myRouter" method="route"/> public List<String> route(Message<?> message) { List<String> results = new ArrayList<String>(); if (message.getPayload().equals("foo") || message.getPayload().equals("bar")) { results.add("foo-channel"); results.add("bar-channel"); } return results; }