2014-10-22 5 views
0

@Router 주석을 사용하여 예제를 찾는 데 어려움을 겪고 있습니다. 나는 정확하게의 javadoc을 이해입니다 경우. 라우터를 사용하는 XML 예에서스프링 통합 라우터 구성

@Service 
public class AgentServiceImpl implements AgentService { 

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

    } 
} 

나는이에 맞는 방법을 알아 내려고 노력에 끊었 무엇입니까 곳입니다 서비스 활성화가 있었다

답변

0

사실 당신은 그렇게 잘못합니다.

* 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 JavaDoc을 참조하십시오.

+0

페이로드 또는 익스프레션 라우터와 같은 스프링 통합 라우터 중 하나를 사용하는 대신 @Router를 사용하여 메시지를 보내야하는 장소에 자신의 논리를 사용 하시겠습니까? – user3465651

+0

죄송합니다, 질문을 이해하지 못합니다. '@ Router'는 정확히 ''와 같습니다. 마지막으로 알고있는 것처럼 기본 프로세서 (표현식 또는 POJO)의 일부 값에서 매핑 논리를 기반으로합니다. 우리가'@ Router'를 사용하여 메소드를 표시했기 때문에,'mapping'을 사용할 이유가 없을 수 있습니다. 왜냐하면 우리는 항상 그 메소드에서 채널 이름을 반환 할 수 있기 때문입니다. 반대편에서이 주석에는'channelMappings()'옵션이 추가로 있습니다. 다시 : JavaDocs를 참조하십시오. –