SpringBoot整合activemq的案例代碼
ActiveMQ是什么
ActiveMQ是消息隊(duì)列技術(shù),為解決高并發(fā)問題而生
ActiveMQ生產(chǎn)者消費(fèi)者模型(生產(chǎn)者和消費(fèi)者可以跨平臺(tái)、跨系統(tǒng))
ActiveMQ支持如下兩種消息傳輸方式
- 點(diǎn)對點(diǎn)模式,生產(chǎn)者生產(chǎn)了一個(gè)消息,只能由一個(gè)消費(fèi)者進(jìn)行消費(fèi)
- 發(fā)布/訂閱模式,生產(chǎn)者生產(chǎn)了一個(gè)消息,可以由多個(gè)消費(fèi)者進(jìn)行消費(fèi)
1.安裝activemq(linux)
1.下載壓縮包,地址鏈接: https://activemq.apache.org/components/classic/download/.


2.利用xshell上傳壓縮包到linux上,并且解壓

3.進(jìn)入到bin目錄啟動(dòng),通過./activemq start命令啟動(dòng)activemq

4.在宿主主機(jī)范文虛擬機(jī)ip地址加上端口號(hào)8161,會(huì)出現(xiàn)登錄彈框叫我們輸入用戶名和密碼,用戶名和密碼都是admin。如下界面即代表active安裝成功

5.要注意的坑!
1)linux主機(jī)和宿主主機(jī)的防火墻都要關(guān)閉
2)linux主機(jī)和宿主主機(jī)一定要互ping得通
3)如果linux主機(jī)和宿主主機(jī)互ping得通,但是卻訪問不了activemq的端口,那就參考這篇文章,把conf目錄下的jetty.xml文件中的地址為linux主機(jī)的ip地址,就可以訪問了。文章鏈接: http://www.dhdzp.com/LINUXjishu/810589.html.
4)activemq還依賴java環(huán)境,所以linux上也要安裝java環(huán)境
2.SpringBoot整合activemq案例
2.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yl</groupId>
<artifactId>jms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jms</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<artifactId>spring-boot-starter-web</artifactId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>2.2 application.properties
# activemq的配置 # 地址 spring.activemq.broker-url=tcp://192.168.244.135:61616 # 信任所有的包 spring.activemq.packages.trust-all=true # 用戶名 spring.activemq.user=admin # 密碼 spring.activemq.password=admin
2.3 消息實(shí)體
package com.yl.jms.model;
import java.io.Serializable;
import java.util.Date;
public class Message implements Serializable {
private String content;
private Date date;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
public Date getDate() {
return date;
public void setDate(Date date) {
this.date = date;
@Override
public String toString() {
return "Message{" +
"content='" + content + '\'' +
", date=" + date +
'}';
}2.4 主程序
package com.yl.jms;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import javax.jms.Queue;
@SpringBootApplication
public class JmsApplication {
public static void main(String[] args) {
SpringApplication.run(JmsApplication.class, args);
}
@Bean
Queue queue() {
return new ActiveMQQueue("yl-queue");
}
2.5 定義消息的發(fā)送和接收方法
package com.yl.jms.config;
import com.yl.jms.model.Message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;
import javax.jms.Queue;
@Component
public class JmsComponent {
//消息發(fā)送模板
@Autowired
JmsMessagingTemplate jmsMessagingTemplate;
Queue queue;
//發(fā)送消息
public void send(Message message) {
jmsMessagingTemplate.convertAndSend(queue,message);
}
//接收消息
@JmsListener(destination = "yl-queue")
public void receive(Message message) {
System.out.println("message:" + message);
}2.6 測試


到此這篇關(guān)于SpringBoot整合activemq的文章就介紹到這了,更多相關(guān)SpringBoot整合activemq內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot集成nacos動(dòng)態(tài)刷新數(shù)據(jù)源的實(shí)現(xiàn)示例
這篇文章主要介紹了SpringBoot集成nacos動(dòng)態(tài)刷新數(shù)據(jù)源的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
SpringCloud使用CircuitBreaker實(shí)現(xiàn)熔斷器的詳細(xì)步驟
在微服務(wù)架構(gòu)中,服務(wù)之間的依賴調(diào)用非常頻繁,當(dāng)一個(gè)下游服務(wù)因高負(fù)載或故障導(dǎo)致響應(yīng)變慢或不可用時(shí),可能會(huì)引發(fā)上游服務(wù)的級(jí)聯(lián)故障,最終導(dǎo)致整個(gè)系統(tǒng)崩潰,熔斷器是解決這類問題的關(guān)鍵模式之一,Spring Cloud提供了對熔斷器的支持,本文將詳細(xì)介紹如何集成和使用它2025-02-02
UniApp?+?SpringBoot?實(shí)現(xiàn)支付寶支付和退款功能
這篇文章主要介紹了UniApp?+?SpringBoot?實(shí)現(xiàn)支付寶支付和退款功能,基本的?SpringBoot?的腳手架,可以去IDEA?自帶的快速生成腳手架插件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-06-06
JDK源碼之線程并發(fā)協(xié)調(diào)神器CountDownLatch和CyclicBarrier詳解
我一直認(rèn)為程序是對于現(xiàn)實(shí)世界的邏輯描述,而在現(xiàn)實(shí)世界中很多事情都需要各方協(xié)調(diào)合作才能完成,就好比完成一個(gè)平臺(tái)的交付不可能只靠一個(gè)人,而需要研發(fā)、測試、產(chǎn)品以及項(xiàng)目經(jīng)理等不同角色人員進(jìn)行通力合作才能完成最終的交付2022-02-02
Mybatis利用分頁插件PageHelper快速實(shí)現(xiàn)分頁查詢
如果你也在用MyBatis,建議嘗試該分頁插件,這一定是最方便使用的分頁插件,這篇文章主要給大家介紹了關(guān)于Mybatis利用分頁插件PageHelper快速實(shí)現(xiàn)分頁查詢的相關(guān)資料,PageHelper是一個(gè)Mybatis的分頁插件,負(fù)責(zé)將已經(jīng)寫好的sql語句,進(jìn)行分頁加工,需要的朋友可以參考下2021-08-08
SpringBoot整合EasyExcel?3.x的完整示例
EasyExcel 是一個(gè)基于 Java 的、快速、簡潔、解決大文件內(nèi)存溢出的 Excel 處理工具,它能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成 Excel 的讀、寫等功能,這篇文章主要介紹了SpringBoot整合EasyExcel3.x的過程,需要的朋友可以參考下2023-07-07
Java設(shè)計(jì)模式之橋接模式的實(shí)現(xiàn)
今天給大家?guī)淼奈恼率荍ava設(shè)計(jì)模式的相關(guān)知識(shí)點(diǎn),文中對橋接模式作了非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06

