Spring - JMSTemplates dynamisch erstellen

Ich verwende Spring Boot und möchte mehrere JMS-Vorlagen dynamisch erstellen, um eine Verbindung zu verschiedenen JMS-Instanzen herzustellen. Ich kenne den Standardansatz für die Verwendung von Anmerkungen, die ConnectionFactory mit der JMSTemplate verknüpfen. Ich würde für jede andere JMS-Instanz ein anderes JMSTemplate erwarten.

Ich habe die Verbindungsdetails derzeit in eine Map geladen. Ich möchte für jeden Schlüssel dynamisch eine JMSTemplate erstellen.

Der Hauptzweck ist das Veröffentlichen von Nachrichten an Zweigzielen basierend auf einer Kartensuche. Aber zum Testen wäre es auch möglich, Zuhörer zu haben.

Potential Ansätze:

1) Fügen Sie die JMSTemplates zu einer Map hinzu, die einer Spring-Komponente zugeordnet ist, und suchen Sie die JMSTemplate in der Spring-Komponentenzuordnung.

2) Wie wäre es mit der dynamischen Registrierung mehrerer jmsTemplate-Beans mit:

BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition (JmsTemplate.class); CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory ();

         builder.addPropertyValue("connectionFactory", cachingConnectionFactory);      // set property value
        DefaultListableBeanFactory factory = (DefaultListableBeanFactory) context.getAutowireCapableBeanFactory();
        factory.registerBeanDefinition("jmsTemplateName", builder.getBeanDefinition());

Dann suchen Sie die JMS-Bean -> ctx.getBean ("jmsTemplateName");

Welcher Ansatz ist günstig?

Bitte beraten

B

Antworten auf die Frage(2)

Ihre Antwort auf die Frage