在 Spring Boot AMQP 中为 RabbitMQ 配置 ConnectionFactory
Configuring ConnectionFactory for RabbitMQ in Spring Boot AMQP
TL;DR 如何以编程方式创建 Spring 引导 AMQP 连接工厂?
嘿,
为了连接到我的 RabbitMQ,我将这些添加到我的 Spring 启动应用程序的 application.properties
文件中:
spring.rabbitmq.host=host
spring.rabbitmq.port=5672
spring.rabbitmq.username=myapp
spring.rabbitmq.password=mypass
根据我的理解,这些值随后用于创建 Spring 引导的自动配置 ConnectionFactory
,然后我将其用于:
@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;
}
我希望能够使用来自 application.properties
之外的不同环境文件的 rabbitMQ 凭据,因此我想以编程方式创建 ConnectionFactory
bean。
我该如何实现?
谢谢。
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setAddresses(address);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
return connectionFactory;
}
TL;DR 如何以编程方式创建 Spring 引导 AMQP 连接工厂?
嘿,
为了连接到我的 RabbitMQ,我将这些添加到我的 Spring 启动应用程序的 application.properties
文件中:
spring.rabbitmq.host=host
spring.rabbitmq.port=5672
spring.rabbitmq.username=myapp
spring.rabbitmq.password=mypass
根据我的理解,这些值随后用于创建 Spring 引导的自动配置 ConnectionFactory
,然后我将其用于:
@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;
}
我希望能够使用来自 application.properties
之外的不同环境文件的 rabbitMQ 凭据,因此我想以编程方式创建 ConnectionFactory
bean。
我该如何实现?
谢谢。
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
connectionFactory.setAddresses(address);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
return connectionFactory;
}