Java Spring集成路由器配置

Java Spring集成路由器配置,java,spring,spring-integration,Java,Spring,Spring Integration,我正在努力寻找使用@Router注释的示例。如果我正确理解了javadocs: @Service public class AgentServiceImpl implements AgentService { @Override @Router(inputChannel = "agentLogin", defaultOutputChannel = "agentServiceResponse") public AgentLoginResponse login(AgentL

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

@Service
public class AgentServiceImpl implements AgentService {

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

    }
}

在路由器的xml示例中,有一个service activator,我正是在这个示例中绞尽脑汁想弄清楚它是如何适应的。

实际上,这样做是错误的。请参阅@Router JavaDocs:

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

因此,目标路由器组件的登录方法必须返回通道名称或整个MessageChannel对象。

然后@router是否会与自己的逻辑一起用于消息的发送位置,而不是使用1个spring集成路由器,如有效负载或表达式路由器?抱歉,我不理解您的问题@路由器的功能与之完全相同。正如我们所知,最后一个基于来自底层处理器表达式或POJO的某个值的映射逻辑。因为我们用@Router标记一个方法,所以可能没有理由进行映射,因为我们总是可以从该方法返回一个通道名。从另一个角度来看,此注释具有其他选项-channelMappings。再次:参见JavaDocs。