Configuration Camel et Activemq avec Spring Boot

J’ai remarqué dans plusieurs exemples que la méthode la plus courante pour configurer activemq avec camel consiste à utiliser les beans suivants. J’aimerais savoir si Spring Boot configure déjà l’un de ces beans par défaut. Je sais que si les fichiers jar activemq sont sur le chemin de classe, une fabrique de connexions par défaut est créée, mais qu’en est-il de tout ce qui suit?

                

ou

 @Bean public ActiveMQConnectionFactory getConnectionFactory() { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); connectionFactory.setBrokerURL(brokerURL); return connectionFactory; } @Bean(initMethod = "start", destroyMethod = "stop") public PooledConnectionFactory getPooledConnectionFactory() { PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(); pooledConnectionFactory.setMaxConnections(maxConnections); pooledConnectionFactory.setConnectionFactory(getConnectionFactory()); return pooledConnectionFactory; } @Bean public JmsConfiguration getJmsConfiguration() { JmsConfiguration jmsConfiguration = new JmsConfiguration(); jmsConfiguration.setConnectionFactory(getPooledConnectionFactory()); return jmsConfiguration; } @Bean public JmsConfiguration getJmsHighPriorityConfiguration() { JmsConfiguration jmsConfiguration = new JmsConfiguration(); jmsConfiguration.setConnectionFactory(getPooledConnectionFactory()); jmsConfiguration.setPriority(8); return jmsConfiguration; } @Override protected void setupCamelContext(CamelContext camelContext) throws Exception { ActiveMQComponent activeMQComponent = new ActiveMQComponent(); activeMQComponent.setConfiguration(getJmsConfiguration()); camelContext.addComponent("activemq", activeMQComponent); ActiveMQComponent activeMQHighPriorityComponent = new ActiveMQComponent(); activeMQHighPriorityComponent.setConfiguration(getJmsHighPriorityConfiguration()); camelContext.addComponent("activemq-high-priority", activeMQHighPriorityComponent); } 

Pendant ce temps, il existe des spring-boot-starters qui peuvent être utilisés pour qu’ActiveMQ et Camel s’exécutent dans Spring Boot.

ActiveMQ

Commencez avec spring-boot-starter-activemq dans votre pom:

  org.springframework.boot spring-boot-starter-activemq  

Configuration

Jetez un coup d’œil à ce qui est configurable à travers cela – sa documentation est fournie à l’ annexe A. Propriétés d’application courantes (recherchez ‘activemq’ et ‘jms’).

Approche alternative: de mon sharepoint vue, il est préférable de déterminer ce qui est configurable dans Sprint Boot et ce qui n’est pas examiné dans le mécanisme de auto-configuration :

  • ActiveMQAutoconfiguration qui montre la relation entre la configuration ActiveMQ et JMS
  • ActiveMQProperties déterminant les propriétés spécifiques à ActiveMQ pouvant être définies

chameau

Apache Camel fournit sa propre intégration Spring Boot . Fondamentalement, vous devez également append camel-spring-boot-starter :

  org.apache.camel camel-spring-boot-starter 2.17.3  

Configuration

Je n’ai pas trouvé de bon exemple de fichier de configuration, aussi, jetez un œil à la configuration exposée à travers la classe CamelConfigurationProperties .

En général – comme vous l’avez mentionné -, vous pourriez finir par enregistrer manuellement vos beans si vous ne trouvez pas toutes les propriétés exposées via cette configuration.