SpringCloud中,用到了RabbitMQ,执行方法的时候,报错,rabbitTemplate为null

mac2026-05-15  5

1.原因:因为我在OrderSender(自己写的发送类)中,用到了rabbitTemplate,通过rabbitTemplate发送消息,然后就找不到了。我在Controller中,是用过下面这种方式调用:

OrderSender orderSender = new OrderSender() ; orderSender.send(JSON.toJSONString(orderSaves));

2.解决:不能通过new,需要用@Autowired,通过这种方式才能注入

@Autowired private OrderSender orderSender ;orderSender.send(JSON.toJSONString(orderSaves));

原因就是一个内含有@Autowired注解的Bean,我们必须要通过Spring的方式来获得这个Bean,而不能自己new一个。因为自己new出来的bean无法通过Spring容器来获得自己需要的bean.可以简单的理解为,要就全都使用Spring容器来管理,要不都不用,你自己new的东西没有进入Spring容器的门票

最新回复(0)