2014-10-22 8 views
0

Я пытаюсь найти примеры с помощью аннотации @Router. Если я понимание Javadocs правильно:.Конфигурация маршрутизатора с интеграцией Spring

@Service 
public class AgentServiceImpl implements AgentService { 

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

    } 
} 

В примерах XML с маршрутизатором была сервисно-активатор, который где я получаю зацикливаться на том, чтобы выяснить, как он будет вписываться в

ответ

0

На самом деле вы делаете это неправильно. См @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. 

Таким образом, ваш метод login для компонента целевой router должен возвращать channel name или весь MessageChannel объект.

+0

Будет ли @Router использоваться с собственной логикой, где следует отправлять сообщение, вместо того, чтобы использовать 1 из ротационных интегральных маршрутизаторов, таких как маршрутизатор полезной нагрузки или выражения? – user3465651

+0

Извините, я не понимаю ваш вопрос. '@ Router' точно так же, как' '. Как известно, последняя основана на логике отображения от некоторого значения от основного процессора (выражение или POJO). Поскольку мы отмечаем метод с помощью '@ Router', может быть нет причин иметь« сопоставление », потому что мы всегда можем вернуть имя канала из этого метода. С другой стороны эта аннотация имеет дополнительную опцию - 'channelMappings()'. Опять же: см. JavaDocs. –

Смежные вопросы