国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 編程語言 - Java教程 - 詳解spring boot整合JMS(ActiveMQ實現)

詳解spring boot整合JMS(ActiveMQ實現)

2021-01-27 11:55牛奮lch Java教程

本篇文章主要介紹了詳解spring boot整合JMS(ActiveMQ實現),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了spring boot整合jms(activemq實現),分享給大家,也給自己留個學習筆記。

一、安裝activemq

具體的安裝步驟,請參考我的另一篇文章:http://www.jfrwli.cn/article/135795.html

二、新建spring boot工程,并加入jms(activemq)依賴

詳解spring boot整合JMS(ActiveMQ實現)

三、工程結構

詳解spring boot整合JMS(ActiveMQ實現)

pom依賴如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelversion>4.0.0</modelversion>
 
  <groupid>com.chhliu.springboot.jms</groupid>
  <artifactid>springboot-jms</artifactid>
  <version>0.0.1-snapshot</version>
  <packaging>jar</packaging>
 
  <name>springboot-jms</name>
  <description>demo project for spring boot jms</description>
 
  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>1.4.3.release</version>
    <relativepath/> <!-- lookup parent from repository -->
  </parent>
 
  <properties>
    <project.build.sourceencoding>utf-8</project.build.sourceencoding>
    <project.reporting.outputencoding>utf-8</project.reporting.outputencoding>
    <java.version>1.7</java.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-activemq</artifactid>
    </dependency>
 
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
  </dependencies>
 
  <build>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-maven-plugin</artifactid>
      </plugin>
    </plugins>
  </build>
</project>

四、修改application.properties配置文件

?
1
2
3
4
5
6
## url of the activemq broker. auto-generated by default. for instance `tcp://localhost:61616`
# failover:(tcp://localhost:61616,tcp://localhost:61617)
# tcp://localhost:61616
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.in-memory=true
spring.activemq.pool.enabled=false //如果此處設置為true,需要加如下的依賴包,否則會自動配置失敗,報jmsmessagingtemplate注入失敗
?
1
2
3
4
5
<dependency>
      <groupid>org.apache.activemq</groupid>
      <artifactid>activemq-pool</artifactid>
      <!-- <version>5.7.0</version> -->
    </dependency>

五、消息生產者

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.chhliu.springboot.jms;
 
import javax.jms.destination;
 
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.jms.core.jmsmessagingtemplate;
import org.springframework.stereotype.service;
 
@service("producer")
public class producer {
  @autowired // 也可以注入jmstemplate,jmsmessagingtemplate對jmstemplate進行了封裝
  private jmsmessagingtemplate jmstemplate;
  // 發送消息,destination是發送到的隊列,message是待發送的消息
  public void sendmessage(destination destination, final string message){
    jmstemplate.convertandsend(destination, message);
  }
}

六、消息消費者

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.chhliu.springboot.jms;
 
import org.springframework.jms.annotation.jmslistener;
import org.springframework.stereotype.component;
 
@component
public class consumer {
    // 使用jmslistener配置消費者監聽的隊列,其中text是接收到的消息
  @jmslistener(destination = "mytest.queue")
  public void receivequeue(string text) {
    system.out.println("consumer收到的報文為:"+text);
  }
}

消費者2的代碼同上,注意,消息消費者的類上必須加上@component,或者是@service,這樣的話,消息消費者類就會被委派給listener類,原理類似于使用sessionawaremessagelistener以及messagelisteneradapter來實現消息驅動pojo

七、測試

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.chhliu.springboot.jms;
 
import javax.jms.destination;
 
import org.apache.activemq.command.activemqqueue;
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.boot.test.context.springboottest;
import org.springframework.test.context.junit4.springrunner;
 
@runwith(springrunner.class)
@springboottest
public class springbootjmsapplicationtests {
   
  @autowired
  private producer producer;
   
  @test
  public void contextloads() throws interruptedexception {
    destination destination = new activemqqueue("mytest.queue");
     
    for(int i=0; i<100; i++){
      producer.sendmessage(destination, "myname is chhliu!!!");
    }
  }
 
}

測試結果如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
consumer2收到的報文為:myname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!

經過上面的幾個步驟,spring boot和jms就基本上整合完成了,是不是使用起來很方便了!

八、實現雙向隊列

1、下面首先來對consumer2這個消費者來進行下改造,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.chhliu.springboot.jms;
 
import org.springframework.jms.annotation.jmslistener;
import org.springframework.messaging.handler.annotation.sendto;
import org.springframework.stereotype.component;
 
@component
public class consumer2 {
 
  @jmslistener(destination = "mytest.queue")
  @sendto("out.queue")
  public string receivequeue(string text) {
    system.out.println("consumer2收到的報文為:"+text);
    return "return message"+text;
  }
}

從上面的代碼可以看出,我們在receivequeue方法上面多加了一個注解@sendto("out.queue"),該注解的意思是將return回的值,再發送的"out.queue"隊列中,下面我們再來跑一下前面的測試,在監控頁面中,我們發現,"out.queue"隊列中已經有內容了,如下:

詳解spring boot整合JMS(ActiveMQ實現)

進入browse界面觀看:

詳解spring boot整合JMS(ActiveMQ實現)

最后看下收到的具體信息:

詳解spring boot整合JMS(ActiveMQ實現)

我們發現,該隊列中的消息,就是我們返回的值!

九、對producer進行改造

通過上面的示例,我們現在對producer進行改造,使其既能生產報文,又能消費隊列中的報文,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.chhliu.springboot.jms;
 
import javax.jms.destination;
 
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.jms.annotation.jmslistener;
import org.springframework.jms.core.jmsmessagingtemplate;
import org.springframework.stereotype.service;
 
@service("producer")
public class producer {
  @autowired
  private jmsmessagingtemplate jmstemplate;
   
  public void sendmessage(destination destination, final string message){
    jmstemplate.convertandsend(destination, message);
  }
   
  @jmslistener(destination="out.queue")
  public void consumermessage(string text){
    system.out.println("從out.queue隊列收到的回復報文為:"+text);
  }
}

測試結果如下:

?
1
2
3
4
5
6
7
8
9
10
從out.queue隊列收到的回復報文為:return messagemyname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
從out.queue隊列收到的回復報文為:return messagemyname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
從out.queue隊列收到的回復報文為:return messagemyname is chhliu!!!
consumer收到的報文為:myname is chhliu!!!
consumer2收到的報文為:myname is chhliu!!!
從out.queue隊列收到的回復報文為:return messagemyname is chhliu!!!

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

原文鏈接:http://blog.csdn.net/liuchuanhong1/article/details/54603546

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲成人免费 | 日韩一区二区三区在线视频 | 中文字幕影视 | 亚洲经典一区 | 精品国产免费久久久久久尖叫 | 亚洲精品二区三区 | 亚洲国产精品网站 | 日韩在线观看一区 | 在线电影亚洲 | 国产精品免费久久久久久久久 | 久久综合欧美 | 黄色免费在线看 | 日韩欧美在线一区 | 一区免费看 | 欧美日韩在线一区二区三区 | 亚洲欧美视频网站 | 亚洲一区中文字幕在线观看 | 人人澡人人射 | 中文字幕在线免费播放 | 日本美女一区二区三区 | 色婷婷综合久久久中字幕精品久久 | 黄视频免费观看 | 日日爽 | 日韩欧美中文字幕在线观看 | 亚洲精品久久久久久一区二区 | 日本久久网 | 成人欧美一区二区三区在线播放 | 日韩免费av一区二区 | 亚洲午夜电影 | 91在线视频观看 | 久久精品国产亚洲一区二区三区 | 国产日韩在线视频 | 国产高清一区 | 亚洲综合色视频在线观看 | 一二三精品区 | 久久久精品日本 | 91在线日韩| 久久久久一区二区三区 | 国产精品网站在线观看 | 国产精品一二三区 | 香蕉成人啪国产精品视频综合网 |