Java 在Spring Boot AMQP中为RabbitMQ配置ConnectionFactory

Java 在Spring Boot AMQP中为RabbitMQ配置ConnectionFactory,java,spring-boot,rabbitmq,spring-amqp,Java,Spring Boot,Rabbitmq,Spring Amqp,TL;DR如何以编程方式创建Spring Boot AMQP连接工厂 哎, 为了连接到我的RabbitMQ,我将这些添加到我的Spring Boot应用程序的应用程序.properties文件中: spring.rabbitmq.host=host spring.rabbitmq.port=5672 spring.rabbitmq.username=myapp spring.rabbitmq.password=mypass 根据我的理解,这些值随后被用于创建Spring Boot的自动配置的连

TL;DR如何以编程方式创建Spring Boot AMQP连接工厂

哎,

为了连接到我的RabbitMQ,我将这些添加到我的Spring Boot应用程序的
应用程序.properties
文件中:

spring.rabbitmq.host=host
spring.rabbitmq.port=5672
spring.rabbitmq.username=myapp
spring.rabbitmq.password=mypass
根据我的理解,这些值随后被用于创建Spring Boot的自动配置的
连接工厂
,然后我将其用于:

@Bean
@Conditional(RabbitCondition.class)
SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, MessageListenerAdapter completedOrderListenerAdapter) {
    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    container.setQueueNames(completedOrderQueueName);
    container.setMessageListener(completedOrderListenerAdapter);
    return container;
}
我希望能够使用来自不同环境文件的rabbitMQ凭据,这些文件不是
application.properties
,因此我希望以编程方式创建
ConnectionFactory
bean。 我如何做到这一点

谢谢

@Bean
public ConnectionFactory connectionFactory() {
    CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
    connectionFactory.setAddresses(address);
    connectionFactory.setUsername(username);
    connectionFactory.setPassword(password);
    return connectionFactory;
}