questa è la mia prima volta con Spring JMS (e con JMS in generale) e ho qualche dubbio legato al concetto di callback JmsTemplate.Che cos'è un callback JmsTemplate in Spring JMS?
So che il JmsTemplate è una classe fornita dalla primavera:
- Riduce codice standard.
- Gestisce le risorse in modo trasparente.
- Converte le eccezioni controllate in equivalenti di runtime.
- Fornisce metodi di convenienza e callback.
e che viene utilizzato per la produzione di messaggi e la ricezione di messaggi sincroni. Semplifica l'utilizzo di JMS poiché gestisce la creazione e il rilascio di risorse durante l'invio o la ricezione sincrona di messaggi.
Leggendo la documentazione ufficiale di primavera (qui: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html) ho trovato:
codice che utilizza il JmsTemplate ha solo bisogno di implementare callback interfacce dando loro un contratto di alto livello chiaramente definito. L'interfaccia di callback di MessageCreator crea un messaggio data una sessione fornita dal codice chiamante in JmsTemplate.
Questo non è chiaro per me. Quali sono esattamente queste richiamate?
All'inizio pensavo che un callback fosse un metodo fornito da JmsTemplate ma leggendo qui sembra qualcosa di più simile a un'interfaccia che devo implementare. Come funziona?
Ho trovato anche questo esempio:
TRASMETTERE POJO THROUGHT JMS (usando l'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
}
}
ho pensato che il convertAndSend() metodo è un JmsTemplate callback ma probabilmente questa affermazione non è corretta.
Potete spiegarmi che cosa è esattamente un callback JmsTemplate?
mmm rimane ancora qualcosa di oscuro per me. Quindi, quali sono questi callback (oltre a SessionCallback), quindi proverò a cercare qualche esempio – AndreaNobili
È possibile eseguire operazioni, ad esempio, direttamente su 'Session' - leggere le specifiche JMS. e Javadoc per ulteriori informazioni. –