最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot整合RabbitMQ(Direct模式)

 更新時(shí)間:2017年04月26日 09:43:49   作者:牛頭人  
springboot集成RabbitMQ非常簡(jiǎn)單,如果只是簡(jiǎn)單的使用配置非常少,springboot提供了spring-boot-starter-amqp項(xiàng)目對(duì)消息各種支持。下面通過(guò)本文給大家介紹下spring boot整合RabbitMQ(Direct模式),需要的朋友可以參考下

springboot集成RabbitMQ非常簡(jiǎn)單,如果只是簡(jiǎn)單的使用配置非常少,springboot提供了spring-boot-starter-amqp項(xiàng)目對(duì)消息各種支持。

1.新建一個(gè)Spring Boot工程,命名為:“rabbitmq-hello”。

在pom.xml中引入如下依賴(lài)內(nèi)容,其中spring-boot-starter-amqp用于支持RabbitMQ。

 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-amqp</artifactId>
 </dependency> 

2.在application.properties中配置關(guān)于RabbitMQ的連接和用戶信息,用戶可以回到上面的安裝內(nèi)容,在管理頁(yè)面中創(chuàng)建用戶。

spring.application.name=rabbitmq-hello
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456

3.創(chuàng)建消息生產(chǎn)者Sender。通過(guò)注入AmqpTemplate接口的實(shí)例來(lái)實(shí)現(xiàn)消息的發(fā)送,AmqpTemplate接口定義了一套針對(duì)AMQP協(xié)議的基礎(chǔ)操作。

在Spring Boot中會(huì)根據(jù)配置來(lái)注入其具體實(shí)現(xiàn)。在該生產(chǎn)者,我們會(huì)產(chǎn)生一個(gè)字符串,并發(fā)送到名為hello的隊(duì)列中。

@Component
public class Sender {
 @Autowired
 private AmqpTemplate rabbitTemplate;
 public void send() {
  String context = "hello " + new Date();
  System.out.println("Sender : " + context);
  this.rabbitTemplate.convertAndSend("hello", context);
 }
}

4.創(chuàng)建消息消費(fèi)者Receiver。

通過(guò)@RabbitListener注解定義該類(lèi)對(duì)hello隊(duì)列的監(jiān)聽(tīng),并用@RabbitHandler注解來(lái)指定對(duì)消息的處理方法。所以,該消費(fèi)者實(shí)現(xiàn)了對(duì)hello隊(duì)列的消費(fèi),消費(fèi)操作為輸出消息的字符串內(nèi)容。

@Component
@RabbitListener(queues = "hello")
public class Receiver {
 @RabbitHandler
 public void process(String hello) {
  System.out.println("Receiver : " + hello);
 }
}

5.創(chuàng)建RabbitMQ的配置類(lèi)RabbitConfig,用來(lái)配置隊(duì)列、交換器、路由等高級(jí)信息。這里我們以入門(mén)為主,先以最小化的配置來(lái)定義,以完成一個(gè)基本的生產(chǎn)和消費(fèi)過(guò)程。

@Configuration
public class RabbitConfig {
 @Bean
 public Queue helloQueue() {
  return new Queue("hello");
 }
}

6.創(chuàng)建應(yīng)用主類(lèi):

@SpringBootApplication
public class HelloApplication {
 public static void main(String[] args) {
  SpringApplication.run(HelloApplication.class, args);
 }
}

7.創(chuàng)建單元測(cè)試類(lèi),用來(lái)調(diào)用消息生產(chǎn):

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = HelloApplication.class)
public class HelloApplicationTests {
  @Autowired
  private Sender sender;
  @Test
  public void hello() throws Exception {
    sender.send();
  }
}

8.啟動(dòng)應(yīng)用主類(lèi),從控制臺(tái)中,我們看到如下內(nèi)容,程序創(chuàng)建了一個(gè)訪問(wèn)127.0.0.1:5672中admin的連接。

o.s.a.r.c.CachingConnectionFactory    : Created new connection: SimpleConnection@29836d32 [delegate=amqp://admin@127.0.0.1:5672/]

同時(shí),我們通過(guò)RabbitMQ的控制面板,可以看到Connection和Channels中包含當(dāng)前連接的條目。

9.運(yùn)行單元測(cè)試類(lèi),我們可以看到控制臺(tái)中輸出下面的內(nèi)容,消息被發(fā)送到了RabbitMQ Server的hello隊(duì)列中。

Sender : hello Sun Sep 25 11:06:11 CST 2016

10.切換到應(yīng)用主類(lèi)的控制臺(tái),我們可以看到類(lèi)似如下輸出,消費(fèi)者對(duì)hello隊(duì)列的監(jiān)聽(tīng)程序執(zhí)行了,并輸出了接受到的消息信息。

Receiver : hello Sun Sep 25 11:06:11 CST 2016

通過(guò)上面的示例,我們?cè)赟pring Boot應(yīng)用中引入spring-boot-starter-amqp模塊,進(jìn)行簡(jiǎn)單配置就完成了對(duì)RabbitMQ的消息生產(chǎn)和消費(fèi)的開(kāi)發(fā)內(nèi)容。

需要注意的地方,Direct模式相當(dāng)于一對(duì)一模式,一個(gè)消息被發(fā)送者發(fā)送后,會(huì)被轉(zhuǎn)發(fā)到一個(gè)綁定的消息隊(duì)列中,然后被一個(gè)接收者接收!

實(shí)際上RabbitMQ還可以支持發(fā)送對(duì)象:當(dāng)然由于涉及到序列化和反序列化,該對(duì)象要實(shí)現(xiàn)Serilizable接口.HelloSender做出如下改寫(xiě):

public void send() {
  User user=new User();  //實(shí)現(xiàn)Serializable接口
  user.setUsername("hlhdidi");
  user.setPassword("123");
  template.convertAndSend("queue",user);
}
HelloReceiver做出如下改寫(xiě):
@RabbitListener(queues="queue")  //監(jiān)聽(tīng)器監(jiān)聽(tīng)指定的Queue
public void process1(User user) {  //用User作為參數(shù)
  System.out.println("Receive1:"+user);
}

以上所述是小編給大家介紹的spring boot整合RabbitMQ(Direct模式),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 基于Arrays.sort()和lambda表達(dá)式

    基于Arrays.sort()和lambda表達(dá)式

    這篇文章主要介紹了Arrays.sort()和lambda表達(dá)式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • spring-mybatis獲取mapper的四種方式匯總

    spring-mybatis獲取mapper的四種方式匯總

    這篇文章主要介紹了spring-mybatis獲取mapper的四種方式匯總,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java實(shí)現(xiàn)修改圖片文件名的方法示例

    Java實(shí)現(xiàn)修改圖片文件名的方法示例

    在很多應(yīng)用中,用戶需要對(duì)文件進(jìn)行重命名操作,包括圖片文件,圖片文件的重命名操作可以是基于文件內(nèi)容、日期、用戶輸入等,本項(xiàng)目的目標(biāo)是實(shí)現(xiàn)一個(gè)Java程序,能夠修改圖片文件的文件名,并進(jìn)行簡(jiǎn)單的文件名處理,需要的朋友可以參考下
    2025-02-02
  • 使用Spring?Boot如何限制在一分鐘內(nèi)某個(gè)IP只能訪問(wèn)10次

    使用Spring?Boot如何限制在一分鐘內(nèi)某個(gè)IP只能訪問(wèn)10次

    有些時(shí)候,為了防止我們上線的網(wǎng)站被攻擊,或者被刷取流量,我們會(huì)對(duì)某一個(gè)ip進(jìn)行限制處理,這篇文章,我們將通過(guò)Spring?Boot編寫(xiě)一個(gè)小案例,來(lái)實(shí)現(xiàn)在一分鐘內(nèi)同一個(gè)IP只能訪問(wèn)10次,感興趣的朋友一起看看吧
    2023-10-10
  • Java8學(xué)習(xí)教程之lambda表達(dá)式語(yǔ)法介紹

    Java8學(xué)習(xí)教程之lambda表達(dá)式語(yǔ)法介紹

    眾所周知lambda表達(dá)式是JAVA8中提供的一種新的特性,它支持Java也能進(jìn)行簡(jiǎn)單的“函數(shù)式編程”。 下面這篇文章主要給大家介紹了關(guān)于Java8學(xué)習(xí)教程之lambda表達(dá)式語(yǔ)法的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • IDEA中scala生成變量后自動(dòng)顯示變量類(lèi)型問(wèn)題

    IDEA中scala生成變量后自動(dòng)顯示變量類(lèi)型問(wèn)題

    這篇文章主要介紹了IDEA中scala生成變量后自動(dòng)顯示變量類(lèi)型問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • java返回前端實(shí)體類(lèi)json數(shù)據(jù)時(shí)忽略某個(gè)屬性方法

    java返回前端實(shí)體類(lèi)json數(shù)據(jù)時(shí)忽略某個(gè)屬性方法

    這篇文章主要給大家介紹了關(guān)于java返回前端實(shí)體類(lèi)json數(shù)據(jù)時(shí)忽略某個(gè)屬性的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • java學(xué)生信息管理系統(tǒng)設(shè)計(jì)

    java學(xué)生信息管理系統(tǒng)設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了java學(xué)生信息管理系統(tǒng)設(shè)計(jì),學(xué)生信息添加進(jìn)入數(shù)據(jù)庫(kù)的事務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Java FineReport報(bào)表工具導(dǎo)出EXCEL的四種方式

    Java FineReport報(bào)表工具導(dǎo)出EXCEL的四種方式

    這篇文章主要介紹了Java FineReport報(bào)表工具導(dǎo)出EXCEL的四種方式的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Spring框架實(shí)現(xiàn)AOP的兩種方式詳解

    Spring框架實(shí)現(xiàn)AOP的兩種方式詳解

    這篇文章主要為大家詳細(xì)介紹了Spring框架實(shí)現(xiàn)AOP的兩種方式,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定的借鑒價(jià)值,需要的可以參考一下
    2022-09-09

最新評(píng)論

三原县| 昆山市| 漯河市| 赤水市| 田阳县| 海林市| 特克斯县| 屯留县| 衡阳县| 修水县| 乃东县| 泰和县| 佛坪县| 时尚| 宝丰县| 陇川县| 平阳县| 鹤壁市| 自贡市| 松潘县| 滦平县| 鄂尔多斯市| 宁化县| 闽侯县| 莱芜市| 大方县| 文山县| 灌阳县| 浠水县| 栾川县| 绵阳市| 上犹县| 化德县| 宝清县| 洛川县| 黔南| 黄龙县| 息烽县| 柳江县| 义马市| 喀喇沁旗|