gradle+springBoot2.2集合ActiveMq

springBoot集成AcitiveMq的時候,由於springBoot的版本不同,所有會出現不同的問題。

當我們在啓動連接池的時候有的時候會出現:啓動項目會報錯,提示JmsMessagingTemplate無法注入、

這個時候,你可以參考:https://blog.csdn.net/eumenides_/article/details/91850332  

可能是你引入jar包的問題。

我們以springBoot2.2爲例

第一步:引入jar包。

compile('org.springframework.boot:spring-boot-starter-activemq')
compile group: 'org.messaginghub', name: 'pooled-jms', version: '1.1.0'

在這個地方一定要切記:

 不能再引入springBoot的時候,把geronimo的包去除了。因爲ActiveMq需要這個包。下面的要註解掉。

config.exclude group: "org.apache.geronimo.specs"
config.exclude group: "com.google.code.findbugs"

第二步:在代碼中引用mq

在啓動類裏添加:

@EnableJms

所以接下來,在需要的controller層,引入redis

 /**
     * 該類繼承JmsTemplate,封裝好了許多方法,更加便捷
     */
    @Autowired
    private JmsMessagingTemplate jmsTemplate;

    
    /**
        將信息添加到MQ裏。
      */
    @ApiOperation(value = "生成MessageQueue",notes = "生成MessageQueue",httpMethod = "GET")
    @RequestMapping(value = "/test",method = RequestMethod.GET)
    public String test(){
        Map msgMap = new HashMap();
        msgMap.put("phone", "123");
        msgMap.put("code","122");
        //創建mq隊列
        Destination destination = new ActiveMQQueue("zhm");
        //發送消息
        jmsTemplate.convertAndSend(destination, JsonUtil.toJson(msgMap));
        return "Welcome to reactive world ~";
    }
     /**
     * 收到MQ,並且對其進行處理
     * @param msg
     */
    @JmsListener(destination = "zhm")
    public void consumptionCheckGoodsInfo1(String msg) {
        System.out.println("msg====>"+msg);
    }
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發佈了80 篇原創文章 · 獲贊 15 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章