Spring Boot整合RabbitMQ报错:找不到ConnectionFactory类型Bean
解决RabbitMQ配置中"No Beans of 'Connectionfactory' type found"错误
这个错误的核心是Spring容器里找不到ConnectionFactory类型的Bean,而你的AmqpTemplate Bean依赖该实例才能创建。以下是具体解决步骤:
1. 引入Spring Boot RabbitMQ Starter依赖
Spring Boot的自动配置需要对应starter包支持,它会自动创建ConnectionFactory等基础RabbitMQ相关Bean。
Maven(pom.xml)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
Gradle(build.gradle)
implementation 'org.springframework.boot:spring-boot-starter-amqp'
2. 配置RabbitMQ连接信息
在application.properties或application.yml中添加RabbitMQ连接参数,自动配置会根据这些参数生成ConnectionFactory:
application.properties示例
spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest
application.yml示例
spring: rabbitmq: host: localhost port: 5672 username: guest password: guest
3. (可选)手动定义ConnectionFactory Bean
如果需要自定义连接规则,也可以手动创建ConnectionFactory Bean替代自动配置:
@Bean public ConnectionFactory connectionFactory() { CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setHost("localhost"); connectionFactory.setPort(5672); connectionFactory.setUsername("guest"); connectionFactory.setPassword("guest"); return connectionFactory; }
完成以上操作后,Spring容器中就会存在ConnectionFactory类型的Bean,AmqpTemplate能正常注入依赖,该错误即可解决。
内容的提问来源于stack exchange,提问作者Makamu Evans
相关产品推荐
相关产品推荐

