我正在处理错误"无法自动连接。没有找到" RabbitTemplate "类型的bean"。我通常尝试自动连接RabbitTemplate到我的生产者类,但它会出现类似的错误。
我试图解决在配置文件中创建bean的问题。但是没有成功。
`
package com.example.rabbitmqexample.producer;
import com.example.rabbitmqexample.model.Notification;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class NotificationProducer {
@Value("${sr.rabbit.routing.name}")
private String routingName;
@Value("${sr.rabbit.exchange.name}")
private String exchangeName;
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendToQueue(Notification notification){
System.out.println("Notification Sent ID: "+notification.getNotificationId());
rabbitTemplate.convertAndSend(exchangeName,routingName,notification);
}
}
`
1条答案
按热度按时间cwxwcias1#
例外情况表明,IOC容器中没有
RabbitTemplate
示例,因此无法将其注入到其他Bean声明(如“NotificationProducer”类)中。你说过
我试图解决在配置文件中创建bean的问题。但是没有成功。
解决方案
RabbitTemplate的正确bean声明,通过尊重构造函数和依赖bean绑定,它们是许多ways来实现的。将ConnectionFactory作为
RabbitTemplate
的依赖bean的正确bean声明的一个实践如下。根据您使用的工件版本,始终检查version文档的兼容性。