激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - Java教程 - 淺談Spring Boot 整合ActiveMQ的過程

淺談Spring Boot 整合ActiveMQ的過程

2021-03-13 14:07蝦游于海 Java教程

本篇文章主要介紹了淺談Spring Boot 整合ActiveMQ的過程,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

RabbitMQ是比較常用的AMQP實現,這篇文章是一個簡單的Spring boot整合RabbitMQ的教程。

安裝ActiveMQ服務器,(也可以不安裝,如果不安裝,會使用內存mq)

構建Spring boot項目,增加依賴項,只需要添加這一項即可

?
1
2
3
4
5
<!-- 添加acitivemq依賴 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

增加Application類

?
1
2
3
4
5
6
7
@SpringBootApplication
@EnableScheduling //使用定時任務發送消息
public class MqTestApplication {
  public static void main(String[] args) {
    SpringApplication.run(MqTestApplication.class, args);
  }
}

配置application.yml

?
1
2
3
4
5
spring:
 activemq:
  broker-url: tcp://127.0.01:61616
  packages:
   trust-all: true

構建一個數據Model,可以發送和消費的數據類型有: String, byte array, Map<String,?>, Serializable object.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 如果發送的消息是一個對象,必須implements Serializable接口
public class TModel implements Serializable {
  private static final long serialVersionUID = -921008687184331557L;
  private int count;
  public TModel(int count) {
    this.count = count;
  }
 
  @Override
  public String toString() {
    return "TModel [count=" + count + "]";
  }
 
}

構建Producer

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Component
public class Producer {
  // 在Producer中注入JmsTemplate,我們可以通過這個template發送消息
  private final JmsTemplate jmsTemplate;
  private int count = 0;
 
  @Autowired
  public Producer(JmsTemplate jmsTemplate) {
    this.jmsTemplate = jmsTemplate;
  }
 
  // 這里使用Spring Boot的定時任務發送消息
  @Scheduled(fixedRate = 1000)
  public void create() {
    // 使用convertAndSend發送消息
    jmsTemplate.convertAndSend("queue1", new TModel(count++));
  }
}

構建Consumer

?
1
2
3
4
5
6
7
@Component
public class Consumer {
  @JmsListener(destination = "queue1")
  public void comsume(TModel content) {
    System.out.println("recive message from queue1 [" + content + "]");
  }
}

特別備注:如果我們的生產者和消費者在不同的Module中時,最好將要消費的數據抽象成公共Module.程序是通過Serializable來序列化和反序列化對象的。必須保證生產者和消費者的對象模型的serialVersionUID是一致的。

項目地址: https://github.com/ldwqh0/active-mq-spring.git

示例:配置rabbitmq ,增加一個隊列

?
1
2
3
4
5
6
7
8
@Configuration
public class Aqueue {
@Bean
public Queue queue() {
return new Queue("good");
}
 
}

定義一個生產者.

當啟用activemq之后,會自動創建一個AmqpTemplate ,可以被注入到任何需要的地方,我們可以通過這個AmqpTemplate發送消息到MQ中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* 定義一個生產者
* @author LiDong
*/
@RestController
@RequestMapping("/test")
public class SendController {
@Autowired
private AmqpTemplate template;
 
@GetMapping
public String testSend() {
// 使用AmqpTemplate發送消息
template.convertAndSend("good", "good");
return "success";
}
}

定義消費者,通過指定RabbitListener(queues='good')指定消費的隊列

?
1
2
3
4
5
6
7
8
9
10
11
@Component
public class Consumer {
/**
* 定義一個消費者
* @param message
*/
@RabbitListener(queues = "good")
public void handler(String message) {
System.out.println("recive message from " + message);
}
}

啟動測試,在瀏覽器中輸入 http://localhost:8080/test 即可發送一條消息到隊列中。 該對列可以被消費者處理

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.jianshu.com/p/b95dcc43a8a6

延伸 · 閱讀

精彩推薦
650
主站蜘蛛池模板: 粉嫩粉嫩一区二区三区在线播放 | 久久久久久久黄色片 | 99亚洲精品| 久久精品视频在线看99 | 欧美一级电影网 | 欧美精品久久久久久久久老牛影院 | 欧美精品在线视频观看 | 性高跟鞋xxxxhd4kvideos | 永久免费不卡在线观看黄网站 | 九九热精品在线 | 羞羞电影在线观看www | 国产精品亚洲综合 | 毛片网站网址 | 看全色黄大色黄大片女图片 | 午夜精品久久久久久久爽 | 狠狠干精品视频 | 香蕉成人在线观看 | 久久久久久久一区二区三区 | 国产91一区 | 92看片淫黄大片一级 | 91精彩在线 | 综合激情网 | 亚洲一区二区观看播放 | 亚洲综合一区二区三区 | 免费小毛片 | 国产高潮国产高潮久久久91 | 日本羞羞影院 | 国产精品麻豆91 | 久久久中精品2020中文 | 在线成人免费观看 | 欧美视频在线一区二区三区 | 国产剧情在线观看一区二区 | 久久噜噜噜 | 一区二区三区四区高清视频 | 蜜桃视频在线观看视频 | 国产精品久久久久av | 中国免费黄色 | 精品一区二区电影 | 日本道中文字幕 | 国产一精品一av一免费爽爽 | 毛片毛片|