Spring Framework JMS DESTIN DE RESTICE APPROCHE
-
14-11-2019 - |
Question
Je voulais résumer les détails de la création / résolvant une destination dans une sorte d'implémentation de destination.
Les détails créant une connexion, créant une session, créant / résolvant une destination.
Une telle implémentation serait-elle une mauvaise approche?
public class SessionAwareDestinationResolver extends DynamicDestinationResolver {
private Session session;
@Inject
public SessionAwareDestinationResolver(ConnectionFactory connectionFactory) {
try {
Connection connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
} catch (JMSException ex) {
throw JmsUtils.convertJmsAccessException(ex);
}
}
public Destination resolveDestinationName(String destinationName,
boolean pubSubDomain) throws JMSException {
return super.resolveDestinationName(session, destinationName,
pubSubDomain);
}
}
METTRE À JOUR
Une meilleure approche serait-elle juste pour envelopper la tâche spécifique dans une action d'exécution?
La solution
Je ne sais pas si je t'ai complètement compris, JMSTEMPLAY Fournit déjà une très bonne abstraction pour envoyer / recevoir des messages des fournisseurs JMS - vous n'avez pas à traiter avec RAW JMS ConnectionFactory ou session. Sauf si vous avez un besoin spécifique pour une session - disons pour implémenter un navigateur de file d'attente ou une demande / réponse dans la même session, etc. idée plutôt que d'avoir besoin d'écrire votre propre abstraction.