Вы можете просто использовать один JmsTemplate
, CachingConnectionFactory
и JndiDestinationResolver
...
Весь смыслиспользование DestinationResolver
означает ленивое решение пунктов назначения для вас.Используйте определенный send
или [convertAndSend][5]. The
destininationName will be passed on to the
DestinationResolver`, чтобы получить пункт назначения.
Единственным недостатком является то, что вам нужно использовать jndi-name в качестве destinationName.
@Bean
public JndiDestinationResolver jndiDestinationResolver() {
return new JndiDestinationResolver();
}
@Bean
public JmsTemplate jmsTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setDestinationResolver(jndiDestinationResolver());
jmsTemplate.setConnectionFactory(connectionFactory());
return jmsTemplate;
}
При этом вы можете использовать следующее для динамического разрешения пункта назначения из JNDI.
jmsTemplate.send("jms/queue1", "This is a message");
jmsTemplate.send("jms/queue3", "This is another message");