1. 程式人生 > >SpringBoot第二十一篇:整合ActiveMQ

SpringBoot第二十一篇:整合ActiveMQ

作者:追夢1819
原文:https://www.cnblogs.com/yanfei1819/p/11190048.html
版權宣告:本文為博主原創文章,轉載請附上博文連結!


引言

  前一章節中,我們詳細闡述了 ActiveMQ 的安裝和使用。其實在網站發展壯大的過程中,訊息中介軟體是無法忽視的技術框架,其重要性在前一章也作了詳細的說明。如此重要的技術,SpringBoot 生態圈自然也是不會"放過"的了,必然要整合到它的體系中去。

  本章將闡述 SpringBoot 整合 ActiveMQ。

使用

首先建立專案,引入 maven 依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<!-- 該啟動器是後面做測試用,非必須的 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

第二步,配置相關資訊:

spring.activemq.broker-url=tcp://xxx:61616
spring.activemq.in-memory=true
spring.activemq.pool.enabled=false

第三步,建立訊息生產者:

package com.yanfei1819.activemq.producer;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;
import javax.jms.Destination;

/**
 * Created by 追夢1819 on 2019-06-26.
 */
@Component
public class Producer {
    @Autowired
    private JmsMessagingTemplate template;
    public void sendMessage(Destination destination, String message){
        template.convertAndSend(destination,message);
    }
}

第四步,建立訊息消費者:

package com.yanfei1819.activemq.consumer;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;

/**
 * Created by 追夢1819 on 2019-06-26.
 */
@Service
public class Consumer {
    @JmsListener(destination = "active.queue")
    public void receive(String text) {
        System.out.println("consumer接收到的報文為:" + text);
    }
}

最後,建立測試介面:

package com.yanfei1819.activemq.web.controller;

import com.yanfei1819.activemq.producer.Producer;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.jms.Destination;

/**
 * Created by 追夢1819 on 2019-06-26.
 */
@Controller
public class ActivemqController {

    @Autowired
    private Producer producer;

    @ResponseBody
    @RequestMapping("/test")
    public void test(){
        Destination destination=new ActiveMQQueue("active.queue");
        for (int i = 0; i <50 ; i++) {
            producer.sendMessage(destination,"我是追夢1819,我的微信公眾號是 technology-and-life ");
        }
    }
}

對以上程式碼作一個簡單的說明:

  1. 為了簡化模型來說明 SpringBoot 中 Activemq 的使用,以上的訊息生產者和訊息消費者都只做了最簡單的模擬,沒有任何邏輯;
  2. 以上的測試使用介面進行測試(作者比較喜歡這種方式),不侷限這種方式,讀者可以用單元測試。

啟動專案,先看看 ActiveMQ 介面:

可以看到生產出來的訊息,已經被注入到 ActiveMQ 中去了。

然後再訪問以上測試介面:http://localhost:8080/test,再看 ActiveMQ 介面:

生產者生產的訊息,被消費者消費。

控制檯的資訊是:

  以上演示了 ActiveMQ 在 SpringBoot 專案中的使用。其餘的一些詳細的測試,讀者可以按照前一章 ActiveMQ 的說明,自行測試。此處由於篇幅所限,就不做冗餘闡述。

總結

  看完以上的示例,讀者應該能繼續感受到 SpringBoot 框架的"開箱即用"的特性和極簡模式。關注幾個註解或者幾個元件,就能用的很順暢。

  但是,還是重複那句,框架的封裝度越高,用起來越簡單,但是對底層的原理的理解越難。如果碰到了問題,也更難追蹤。所以作者建議讀者,特別是新人或者剛接觸 SpringBoot 的讀者,一定要在使用的基礎上,去理解每一個被整合的框架的使用和原理(當然,如果基礎好,能夠讀底層原始碼更好了)。萬不可為了使用而使用。就像一個同事說的,如果哪一天 Spring 生態圈被別的框架取代了,那你就失業了。

  憂患意識一定要保持著。



相關推薦

SpringBoot第二整合ActiveMQ

作者:追夢1819 原文:https://www.cnblogs.com/yanfei1819/p/11190048.html 版權宣告:本文為博主原創文章,轉載請附上博文連結! 引言   前一章節中,我們詳細闡述了 ActiveMQ 的安裝和使用。其實在網站發展壯大的過程中,訊息中介軟體是無法忽視的技術框

起來學SpringBoot | 第整合Swagger線上除錯

SpringBoot 是為了簡化 Spring 應用的建立、執行、除錯、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規範,引入相關的依賴就可以輕易的搭建出一個 WEB 工程 隨著網際網路技

起來學SpringBoot | 第二輕鬆搞定安全框架(Shiro)

SpringBoot 是為了簡化 Spring 應用的建立、執行、除錯、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規範,引入相關的依賴就可以輕易的搭建出一個 WEB 工程 Shiro 是

第二spring怎麼做快取

 專案背景: 你可能遇情景: 1、一個做統計的頁面,每次重新整理需要調介面做查詢 ,是聯表查詢,查出來的資料還需要做一些計算或者加工,不算頁面上的圖表外掛,重新整理一次,延遲個幾秒鐘才出的來 2、 一個統計介面如此,一個頁面如果好幾個統計的介面查詢…… 3、你有很多介

SpringBoot | 第二非同步開發之非同步呼叫

前言 上一章節,我們知道了如何進行非同步請求的處理。除了非同步請求,一般上我們用的比較多的應該是非同步呼叫。通常在開發過程中,會遇到一個方法是和實際業務無關的,沒有緊密性的。比如記錄日誌資訊等業務。這個時候正常就是啟一個新執行緒去做一些業務處理,讓主執行緒非同步的執行其他業

SpringBootSpringBoot+MyBatis+Thymelaf實現CRUD

作者:追夢1819 原文:https://www.cnblogs.com/yanfei1819/p/10936304.html 版權宣告:本文為博主原創文章,轉載請附上博文連結! 引言   總結前面幾章,我們瞭解了 SpringBoot 的基本用法及其配置,整合各大 ORM 框架,並瞭解了 Thymelaf

SpringBoot整合jsp

作者:追夢1819 原文:https://www.cnblogs.com/yanfei1819/p/10953600.html 版權宣告:本文為博主原創文章,轉載請附上博文連結! 引言   SpringBoot 雖然官方推薦使用 thymelaf 模板引擎,但是也支援jsp,只不過需要做一些修改。本文將講解

SpringBoot第二應用監控之Actuator

作者:追夢1819 原文:https://www.cnblogs.com/yanfei1819/p/11226397.html 版權宣告:本文為博主原創文章,轉載請附上博文連結! 引言   很多文章都將 SpringBoot Actuator 的 Endpoint 翻譯為 "端點"。不過

SpringBoot第二應用監控之Admin

作者:追夢1819 原文:https://www.cnblogs.com/yanfei1819/p/11457867.html 版權宣告:本文為博主原創文章,轉載請附上博文連結! 引言   前一章(SpringBoot第二十二篇:應用監控之Actuator)介紹了 SpringBoot 應用使用 Actuc

SpringBoot整合Swagger3.0與RESTful介面整合返回值(2020最新最易懂)

SpringBoot第十一集:整合Swagger3.0與RESTful介面整合返回值(2020最新最易懂) 一,整合Swagger3.0   隨著Spring Boot、Spring Cloud等微服務的流行,在微服務的設計下,小公司微服務工程jar小的幾十個,大公司大的工程拆分jar多則幾百上萬個,這麼多的

轉載SpringBoot非官方教程 | 第springboot整合swagger2,構建優雅的Restful API

swagger,中文“拽”的意思。它是一個功能強大的api框架,它的整合非常簡單,不僅提供了線上文件的查閱,而且還提供了線上文件的測試。另外swagger很容易構建restful風格的api,簡單優雅帥氣,正如它的名字。 一、引入依賴 <depend

SpringBoot非官方教程 | 第二 springboot整合docker

這篇文篇介紹,怎麼為 springboot程式構建一個Docker映象。docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 L

(轉)第springboot集成swagger2,構建優雅的Restful API

html 風格 lan round amt select() hash 指定 model   聲明:本部分內容均轉自於方誌明博友的博客,因為本人很喜歡他的博客,所以一直在學習,轉載僅是記錄和分享,若也有喜歡的人的話,可以去他的博客首頁看:http://blog.csdn.n

Python開發【第二Web框架之Django【基礎】

name line 控制 creat js等 nec serve pan xiaohua 一、 Django簡介 1.web框架簡介 具體介紹Django之前,必須先介紹WEB框架等概念。 web框架: 別人已經設定好的一個web網站模板,你學習它的規則,然後“填空”或“修

SpringBoot非官方教程 | 第二2小時學會springboot

  Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and i

SpringBoot | 第二九章Dubbo的整合和使用

前言 今年年初時,阿里巴巴開源的高效能服務框架dubbo又開始了新一輪的更新,還加入了Apache孵化器。原先專案使用了spring cloud之後,已經比較少用dubbo。目前又抽調回原來的行業應用部門,可能還會使用dubbo進行服務呼叫。趁著編寫教材的機會來進行學習下。而且目前Dubbo也出了sprin

SpringBootSpringBoot整合Kafka

一、準備工作 提前說明:如果你執行出問題,請檢查Kafka的版本與SpringBoot的版本是否與我文中的一致,本文中的環境已經經過測試。 Kafka服務版本為 kafka_2.11-1.1.0 (Scala), 也就是1.1.0 SpringBoot版本:1.5.10.R

輕輕鬆鬆學習SpringBoot2第二 Spring Boot和Mongodb整合(完整版)

今天主要講的是Spring Boot和Mongodb整合我們先來回顧一下前面章節的相關內容前面我們講了SpringBoot和mysql整合,並且講了操作資料庫的幾種方式自動生成表資料庫操作操作篇回到正題,mongodb的安裝在這就不累述了,win版本的去官網下載,然後一直下一

起來學SpringBoot | 第強大的 actuator 服務監控與管理

SpringBoot 是為了簡化 Spring 應用的建立、執行、除錯、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規範,引入相關的依賴就可以輕易的搭建出一個 WEB 工程 actuato

起來學SpringBoot | 第actuator與spring-boot-admin 可以說的祕密

SpringBoot 是為了簡化 Spring 應用的建立、執行、除錯、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規範,引入相關的依賴就可以輕易的搭建出一個 WEB 工程 一起來學Spr