Это мой первый раз с Spring JMS (и с JMS в целом), и у меня есть некоторые сомнения, связанные с концепцией обратного вызова JMSTemplate JmsTemplate.Что такое обратный вызов JmsTemplate в Spring JMS?
Я знаю, что JmsTemplate класс при условии, с весны до:
- Уменьшает шаблонный код.
- Управление ресурсами прозрачно.
- Преобразует проверенные исключения в эквиваленты времени выполнения.
- Предоставляет удобные методы и обратные вызовы.
и что он используется для создания сообщений и синхронного приема сообщений. Это упрощает использование JMS, поскольку оно обрабатывает создание и выпуск ресурсов при отправке или синхронном получении сообщений.
Чтение официальной документации Spring (здесь: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html) я нашел:
код, который использует JmsTemplate нужно только реализовать функцию обратного вызова интерфейсов, давая им четко определенный контракт на высоком уровне. Интерфейс обратного вызова MessageCreator создает сообщение с сеансом , предоставляемым вызывающим кодом в JmsTemplate.
Это неясно для меня. Каковы именно эти обратные вызовы?
В начале я подумал, что обратный вызов - это метод, предоставляемый с помощью JmsTemplate , но чтение здесь кажется чем-то более похожим на интерфейс, который я должен реализовать. Как это работает?
Я также нашел этот пример:
послав POJO Повсеместно JMS (с использованием JmsTemplate):
public class JmsOrderManager implements OrderManager {
@Autowired JmsTemplate jmsTemplate;
@Autowired Destination orderQueue;
public void placeOrder(Order order) {
String stringMessage = "New order " + order.getNumber();
jmsTemplate.convertAndSend("messageQueue", stringMessage);
// use destination resolver and message converter
jmsTemplate.convertAndSend(orderQueue, order); // use message converter
jmsTemplate.convertAndSend(order); // use converter and default destination
}
}
я подумал, что convertAndSend() метод является JmsTemplate обратного вызова но, вероятно, это утверждение неверно.
Можете ли вы объяснить мне, что такое обратный вызов JmsTemplate?
ммм все еще остается чем-то непонятным для меня. Итак, каковы эти обратные вызовы (в дополнение к SessionCallback), поэтому я попытаюсь выполнить поиск в некотором примере – AndreaNobili
Вы можете выполнять операции, например, непосредственно на 'Session' - читать JMS Spec. и Javadocs для получения дополнительной информации. –