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
совокупность методов.