@Gateway не требуется, если мы используем @MessagingGateway - PullRequest
0 голосов
/ 17 июня 2020

Начиная с Spring 4.0 и далее был введен @MessagingGateway. Используя его, если у нас есть только один метод шлюза в нашем интерфейсе шлюза, тогда нам не нужно аннотировать метод шлюза с помощью @Gateway. Ниже приведен мой пример, где оба работают.

Итак, мой вопрос: можем ли мы прекратить использование @Gateway, когда у нас есть только один метод в интерфейсе шлюза?

Код-1:

@MessagingGateway(name="demoGateway")
public interface DemoGateway {
    @Gateway(requestChannel = "gatewayRequestChannel",replyChannel = "nullChannel")
    void accept(Message<String> request);
}

Код-2:

@MessagingGateway(name="demoGateway",defaultRequestChannel = 
"gatewayRequestChannel",defaultReplyChannel = "nullChannel")
public interface DemoGateway {

    void accept(Message<String> request);
}

1 Ответ

2 голосов
/ 17 июня 2020

Да. Ты прав. Вы можете использовать подход 2 и оставить единственный метод, который подтверждает конфигурацию по умолчанию @MessagingGateway без аннотации.

Однако на практике я перемещу только истинные значения по умолчанию в MessagingGateway и оставлю другие значения к аннотации @Gateway.

Это потому, что это делает жизнь и удобочитаемость проще в будущем, если вам придется добавить больше методов к DemoGateway в будущем.

...