测试类中,引用rabbitmq的produce类,RabbitTemplate注入为空!
测试类:
消息生产者:
情况是这样的:
我们在confirmSender类中声明了@Component,所以项目启动时,Spring会构建一次confirmSender类,放入Spring Bean容器
我们在confirmSender类中使用@Autowired注解的方式来注入属性,即通过Spring的方式来获得AmqpTemplate实例
我们在SysRouteConfController类中没有使用@Autowired的方式来获得Test实例,而是自行new,见图一
结论:
一个内含有@Autowired注解的Bean,我们必须要通过Spring的方式来获得这个Bean,而不能自己new一个。因为自己new出来的bean无法通过Spring容器来获得自己需要的bean.可以简单的理解为,要就全都使用Spring容器来管理,要不都不用
解决方案:
在类中引入生产者的类,在方法中通过this.sender.方法完成。