Let's return to our application. The whole system is based on asynchronous communication over RabbitMQ. As we might have learned from Chapter 8, Scaling Up with Cloud Streams, all we have to do to set up a connection with a local RabbitMQ instance is to provide two additional Spring Boot dependencies. Additionally, for the Cloud infrastructure, we have to add spring-cloud-spring-service-connector and spring-cloud-cloudfoundry-connector dependencies. Finally, we have to provide a configuration depicted in the following code snippet and additional @ScanCloud annotation:
@Configuration @Profile("cloud") public class CloudConfig extends AbstractCloudConfig { @Bean public ConnectionFactory rabbitMQConnectionFactory() { return connectionFactory().rabbitConnectionFactory(); } }
For better flexibility, we use the @Profile("cloud") annotation, which enables the RabbitMQ configuration only when running on the cloud, and not locally during development.