springboot整合rabbitmq,RabbitTemplate自动装配报错:Could not autowire. No beans of ‘RabbitTemplate’ type found.
很明显未配置rabbitTemplate,并非网上所谓的路径问题或者idea报错级别设置问题。
解决方法,添加如下配置:
application.yml:
spring:
rabbitmq:
host: 192.1.1.10
port: 5672
username: admin
password: admin
virtual-host: /mirror #virtual-host起隔离作用,默认为:/
server:
port: 8080
rabbitmqConfig配置类:
@SpringBootConfiguration
public class RabbitmqConfig {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Value("${spring.rabbitmq.host}")
private String host;
@Value("${spring.rabbitmq.port}")
private int port;
@Value("${spring.rabbitmq.username}")
private String username;
@Value("${spring.rabbitmq.password}")
private String password;
@Value("${spring.rabbitmq.virtual-host}")
private String virtualhost;
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host,port);
connectionFactory.setUsername(username);
connectionFactory.setPassword(password);
connectionFactory.setVirtualHost(virtualhost);
//connectionFactory.setPublisherConfirms(true);
return connectionFactory;
}
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
//必须是prototype类型
public RabbitTemplate rabbitTemplate() {
RabbitTemplate template = new RabbitTemplate(connectionFactory());
return template;
}
添加配置类后一切正常: