測試類中,引用rabbitmq的produce類番甩,RabbitTemplate注入為空侵贵!
測試類:
消息生產(chǎn)者:
情況是這樣的:
我們在confirmSender類中聲明了@Component,所以項(xiàng)目啟動時缘薛,Spring會構(gòu)建一次confirmSender類窍育,放入Spring Bean容器
我們在confirmSender類中使用@Autowired注解的方式來注入屬性卡睦,即通過Spring的方式來獲得AmqpTemplate實(shí)例
我們在SysRouteConfController類中沒有使用@Autowired的方式來獲得Test實(shí)例,而是自行new漱抓,見圖一
結(jié)論:
一個內(nèi)含有@Autowired注解的Bean表锻,我們必須要通過Spring的方式來獲得這個Bean,而不能自己new一個乞娄。因?yàn)樽约簄ew出來的bean無法通過Spring容器來獲得自己需要的bean.可以簡單的理解為瞬逊,要就全都使用Spring容器來管理,要不都不用
解決方案:
在類中引入生產(chǎn)者的類仪或,在方法中通過this.sender.方法完成确镊。