成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用springboot如何實(shí)現(xiàn)對(duì)RabbitMQ進(jìn)行整合

使用spring boot如何實(shí)現(xiàn)對(duì)RabbitMQ進(jìn)行整合?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)主營廬江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),廬江h(huán)5成都小程序開發(fā)搭建,廬江網(wǎng)站營銷推廣歡迎廬江等地區(qū)企業(yè)咨詢

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

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

在pom.xml中引入如下依賴內(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)容,在管理頁面中創(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。通過注入AmqpTemplate接口的實(shí)例來實(shí)現(xiàn)消息的發(fā)送,AmqpTemplate接口定義了一套針對(duì)AMQP協(xié)議的基礎(chǔ)操作。

在Spring Boot中會(huì)根據(jù)配置來注入其具體實(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。

通過@RabbitListener注解定義該類對(duì)hello隊(duì)列的監(jiān)聽,并用@RabbitHandler注解來指定對(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的配置類RabbitConfig,用來配置隊(duì)列、交換器、路由等高級(jí)信息。這里我們以入門為主,先以最小化的配置來定義,以完成一個(gè)基本的生產(chǎn)和消費(fèi)過程。

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

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

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

7.創(chuàng)建單元測(cè)試類,用來調(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)用主類,從控制臺(tái)中,我們看到如下內(nèi)容,程序創(chuàng)建了一個(gè)訪問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í),我們通過RabbitMQ的控制面板,可以看到Connection和Channels中包含當(dāng)前連接的條目。

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

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

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

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

通過上面的示例,我們?cè)赟pring Boot應(yīng)用中引入spring-boot-starter-amqp模塊,進(jìn)行簡單配置就完成了對(duì)RabbitMQ的消息生產(chǎn)和消費(fè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做出如下改寫:

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

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

網(wǎng)站題目:使用springboot如何實(shí)現(xiàn)對(duì)RabbitMQ進(jìn)行整合
分享網(wǎng)址:http://jinyejixie.com/article20/pshjco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、搜索引擎優(yōu)化、App開發(fā)、網(wǎng)站排名、電子商務(wù)網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
深州市| 濮阳县| 江安县| 南宁市| 工布江达县| 诸暨市| 芜湖市| 察哈| 巴塘县| 凤冈县| 全椒县| 新民市| 伊通| 潼南县| 集安市| 遂宁市| 寿宁县| 淳化县| 湖州市| 米易县| 东港市| 绵竹市| 平罗县| 绥化市| 石狮市| 临桂县| 阳东县| 吴堡县| 西乡县| 甘泉县| 华亭县| 福泉市| 广宁县| 九江县| 鞍山市| 罗甸县| 玉环县| 平山县| 中方县| 海城市| 永州市|