【spring錯誤】在學習rabbitMq時,@Autowired注入的amqpTemplate始終爲空

問題

測試rabbitMq發送端時,發現amqpTemplate爲空

    @Test
    public void testMessage() {
//        自己new MQSender,amqpTemplate不會被注入
        MQSender sender = new MQSender();
        SeckillMessage message = new SeckillMessage();
        message.setGoodsId(123L);
        sender.sendSeckillMessage(message);
    }

原因

原因就是一個內含有@Autowired註解的Bean,我們必須要通過Spring的方式來獲得這個Bean,而不能自己new一個。因爲自己new出來的bean無法通過Spring容器來獲得自己需要的bean。可以簡單的理解爲,要就全都使用Spring容器來管理,要麼都不用,你自己new的對象無法進入spring容器

所以說這個問題是spring容器注入問題,並不是rabbitmq的問題

解決方法

不能new MQSender,@Resource、@Autowired 的方式

 

參考文章:https://blog.csdn.net/SnailMann/article/details/82183787

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章