SimpMessagingTemplate vs MessageSendingOperations

Я только начал изучать Spring 4 топать через websocket. Каковы различия между этими двумя? Какие случаи я должен использовать один над другим?

1 ответ

Решение

Нет никакой разницы: MessageSendingOperations это интерфейс - контракт.SimpMessagingTemplate это конкретная реализация первого.

Обычно достаточно сконфигурировать bean-компонент для конкретной реализации, но внедрить его по типу его conctract:

@Bean
public MessageSendingOperations messagingTemplate() {
    return new SimpMessagingTemplate(this.inputChannel);
}

...

@Component
public class MyService {

   @Autowired
   private MessageSendingOperations  messagingTemplate;
}

Хотя это правда, что SimpMessagingTemplate класс реализует контракты, указанные в MessageSendingOperations интерфейс, вы на практике будете использовать SimpMessagingTemplate когда вы хотите отправить сообщение определенному пользователю.

Это потому, что (на момент написания) SimpMessageTemplate также реализует подинтерфейс SimpMessageSendingOperations который предлагает convertAndSendToUser совокупность методов.

Другие вопросы по тегам