【问题标题】:Spring integration router configurationSpring集成路由器配置
【发布时间】:2014-10-22 09:25:37
【问题描述】:

我正在努力寻找使用 @Router 注释的示例。如果我正确理解了 javadocs:

@Service
public class AgentServiceImpl implements AgentService {

    @Override
    @Router(inputChannel = "agentLogin", defaultOutputChannel = "agentServiceResponse")
    public AgentLoginResponse login(AgentLoginRequest request) {

    }
}

在带有路由器的 xml 示例中,有一个服务激活器,这是我一直在试图弄清楚它如何适应的地方。

【问题讨论】:

    标签: java spring spring-integration


    【解决方案1】:

    实际上你这样做是错误的。见@RouterJavaDocs:

    * Indicates that a method is capable of resolving to a channel or channel name
    * based on a message, message header(s), or both.
    

    因此,目标router 组件的login 方法必须返回channel name 或整个MessageChannel 对象。

    【讨论】:

    • 是否将@Router 与自己的逻辑一起用于消息应该发送到哪里,而不是使用 1 个 spring 集成路由器,如有效负载或表达式路由器?
    • 对不起,我不明白你的问题。 @Router<router> 完全相同。正如我们所知,最后一个是基于来自底层处理器(表达式或 POJO)的某个值的映射逻辑。由于我们用@Router 标记了一个方法,因此可能没有理由使用mapping,因为我们总是可以从该方法返回一个通道名称。从另一方面看,这个注释有额外的选项 - channelMappings()。再次:参见 JavaDocs。
    猜你喜欢
    • 2014-04-04
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多