Spring Bootアプリで次のコードを使用して、動的にキューを作成できました。
Application.javaで
@Bean
public ConnectionFactory jmsFactory()
{
ActiveMQConnectionFactory amq = new ActiveMQConnectionFactory()
amq.setBrokerURL("tcp://somehost");
return amq;
}
@Bean
public JmsTemplate myJmsTemplate()
{
JmsTemplate jmsTemplate = new JmsTemplate(jmsFactory());
jmsTemplate.setPubSubDomain(false);
return jmsTemplate;
}
次に、キューを動的に作成する別のクラスで:
@Component
public class Foo {
@Autowired
private ConnectionFactory jmsFactory;
public void someMethod () {
DefaultMessageListenerContainer messageListener = new DefaultMessageListenerContainer();
messageListener.setDestinationName("queueName");
messageListener.setConnectionFactory(jmsFactory);
messageListener.setMessageListener(new Consumer("queueName"));
messageListener.setPubSubDomain(false);
messageListener.initialize();
messageListener.start();
}
}