国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring整合RabbitMQ

這篇具有很好參考價值的文章主要介紹了Spring整合RabbitMQ。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、步驟

生產(chǎn)者

① 創(chuàng)建生產(chǎn)者工程
② 添加依賴
③ 配置整合
④ 編寫代碼發(fā)送消息

消費者

① 創(chuàng)建消費者工程
② 添加依賴
③ 配置整合
④ 編寫消息監(jiān)聽器

二、代碼

生產(chǎn)者工程

Spring整合RabbitMQ,rabbitmq,java-rabbitmq,spring,rabbitmq

1.在生產(chǎn)者工程和消費者工程中都導(dǎo)入如下依賴

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.1.7.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.amqp</groupId>
        <artifactId>spring-rabbit</artifactId>
        <version>2.1.8.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.1.7.RELEASE</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

?2.生產(chǎn)者和消費者 導(dǎo)入配置文件? ?rabbitmq.properties

rabbitmq.host=43.143.246.208
rabbitmq.port=5672
rabbitmq.username=root
rabbitmq.password=root
rabbitmq.virtual-host=/itcast

3.生產(chǎn)者核心配置文件??spring-rabbitmq-producer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:rabbit="http://www.springframework.org/schema/rabbit"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/rabbit
       http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
    <!--加載配置文件-->
    <context:property-placeholder location="classpath:rabbitmq.properties"/>

    <!-- 定義rabbitmq connectionFactory -->
    <rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}"
                               port="${rabbitmq.port}"
                               username="${rabbitmq.username}"
                               password="${rabbitmq.password}"
                               virtual-host="${rabbitmq.virtual-host}"/>
    <!--定義管理交換機、隊列-->
    <rabbit:admin connection-factory="connectionFactory"/>

    <!--定義持久化隊列,不存在則自動創(chuàng)建;不綁定到交換機則綁定到默認交換機
    默認交換機類型為direct,名字為:"",路由鍵為隊列的名稱
    -->
    <rabbit:queue id="spring_queue" name="spring_queue" auto-declare="true"/>

    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~廣播;所有隊列都能收到消息~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!--定義廣播交換機中的持久化隊列,不存在則自動創(chuàng)建-->
    <rabbit:queue id="spring_fanout_queue_1" name="spring_fanout_queue_1" auto-declare="true"/>

    <!--定義廣播交換機中的持久化隊列,不存在則自動創(chuàng)建-->
    <rabbit:queue id="spring_fanout_queue_2" name="spring_fanout_queue_2" auto-declare="true"/>

    <!--定義廣播類型交換機;并綁定上述兩個隊列-->
    <rabbit:fanout-exchange id="spring_fanout_exchange" name="spring_fanout_exchange" auto-declare="true">
        <rabbit:bindings>
            <rabbit:binding queue="spring_fanout_queue_1"/>
            <rabbit:binding queue="spring_fanout_queue_2"/>
        </rabbit:bindings>
    </rabbit:fanout-exchange>

    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~通配符;*匹配一個單詞,#匹配多個單詞 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!--定義廣播交換機中的持久化隊列,不存在則自動創(chuàng)建-->
    <rabbit:queue id="spring_topic_queue_star" name="spring_topic_queue_star" auto-declare="true"/>
    <!--定義廣播交換機中的持久化隊列,不存在則自動創(chuàng)建-->
    <rabbit:queue id="spring_topic_queue_well" name="spring_topic_queue_well" auto-declare="true"/>
    <!--定義廣播交換機中的持久化隊列,不存在則自動創(chuàng)建-->
    <rabbit:queue id="spring_topic_queue_well2" name="spring_topic_queue_well2" auto-declare="true"/>

    <rabbit:topic-exchange id="spring_topic_exchange" name="spring_topic_exchange" auto-declare="true">
        <rabbit:bindings>
            <rabbit:binding pattern="root.*" queue="spring_topic_queue_star"/>
            <rabbit:binding pattern="root.#" queue="spring_topic_queue_well"/>
            <rabbit:binding pattern="itcast.#" queue="spring_topic_queue_well2"/>
        </rabbit:bindings>
    </rabbit:topic-exchange>

    <!--定義rabbitTemplate對象操作可以在代碼中方便發(fā)送消息-->
    <rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>
</beans>

4.測試類?ProducerTest

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-rabbitmq-producer.xml")
public class ProducerTest {
    //1.注入 RabbitTemplate
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void testHelloWorld(){
        //2.發(fā)送消息
        rabbitTemplate.convertAndSend("spring_queue","hello world spring....");
    }
    /**
     * 發(fā)送fanout消息
     */
    @Test
    public void testFanout(){
        //2.發(fā)送消息

        rabbitTemplate.convertAndSend("spring_fanout_exchange","","spring fanout....");
    }


    /**
     * 發(fā)送topic消息
     */
    @Test
    public void testTopic(){
        //2.發(fā)送消息

        rabbitTemplate.convertAndSend("spring_topic_exchange","root.hehe.haha","spring topic....");
    }
}

5.運行結(jié)果?

Spring整合RabbitMQ,rabbitmq,java-rabbitmq,spring,rabbitmq

?消費者工程

1、2同上述1、2

3、消費者核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:rabbit="http://www.springframework.org/schema/rabbit"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/rabbit
       http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
    <!--加載配置文件-->
    <context:property-placeholder location="classpath:rabbitmq.properties"/>

    <!-- 定義rabbitmq connectionFactory -->
    <rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}"
                               port="${rabbitmq.port}"
                               username="${rabbitmq.username}"
                               password="${rabbitmq.password}"
                               virtual-host="${rabbitmq.virtual-host}"/>
    <!-- 定義SpringQueueListener -->
    <bean id="springQueueListener" class="com.rabbitmq.listener.SpringQueueListener"/>
<!--    <bean id="fanoutListener1" class="com.rabbitmq.listener.FanoutListener1"/>-->
<!--    <bean id="fanoutListener2" class="com.rabbitmq.listener.FanoutListener2"/>-->
<!--    <bean id="topicListenerStar" class="com.rabbitmq.listener.TopicListenerStar"/>-->
<!--    <bean id="topicListenerWell" class="com.rabbitmq.listener.TopicListenerWell"/>-->
<!--    <bean id="topicListenerWell2" class="com.rabbitmq.listener.TopicListenerWell2"/>-->

    <rabbit:listener-container connection-factory="connectionFactory" auto-declare="true">
        <!-- 定義SpringQueueListener 監(jiān)聽哪個隊列-->
        <rabbit:listener ref="springQueueListener" queue-names="spring_queue"/>
<!--        <rabbit:listener ref="fanoutListener1" queue-names="spring_fanout_queue_1"/>-->
<!--        <rabbit:listener ref="fanoutListener2" queue-names="spring_fanout_queue_2"/>-->
<!--        <rabbit:listener ref="topicListenerStar" queue-names="spring_topic_queue_star"/>-->
<!--        <rabbit:listener ref="topicListenerWell" queue-names="spring_topic_queue_well"/>-->
<!--        <rabbit:listener ref="topicListenerWell2" queue-names="spring_topic_queue_well2"/>-->
    </rabbit:listener-container>
</beans>

4.類?SpringQueueListener

public class SpringQueueListener implements MessageListener {
    @Override
    public void onMessage(Message message) {
        //打印消息
        System.out.println(new String(message.getBody()));
    }
}

5.測試

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-rabbitmq-comsumer.xml")
public class ConsumerTest {
    @Test
    public void test1(){
        boolean flag = true;
        while (true){

        }
    }

}

Spring整合RabbitMQ,rabbitmq,java-rabbitmq,spring,rabbitmq文章來源地址http://www.zghlxwxcb.cn/news/detail-733398.html

到了這里,關(guān)于Spring整合RabbitMQ的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring整合RabbitMQ-注解方式

    maven導(dǎo)入 5.2.1 消息的生產(chǎn)者 RabbitConfig 提示: ConnectionFactory有三個實現(xiàn) CachingConnectionFactory 基于channel的緩存模式 最常用是這個。 LocalizedQueueConnectionFactory 直接連接某個節(jié)點的方式。如果是集群,此種不太適合。 SimpleRoutingConnectionFactory 在當(dāng)前的連接工廠中按查找的KEY獲取連接

    2024年02月09日
    瀏覽(21)
  • [Spring boot] Spring boot 整合RabbitMQ實現(xiàn)通過RabbitMQ進行項目的連接

    [Spring boot] Spring boot 整合RabbitMQ實現(xiàn)通過RabbitMQ進行項目的連接

    ???作者:天海奈奈 ??眼過千遍不如手錘一遍:推薦一款模擬面試,斬獲大廠 o f f e r ,程序員的必備刷題平臺 ? ? ??途W(wǎng)? ????點擊開始刷題之旅 目錄 什么是RabbitMQ ??消息隊列:接受并轉(zhuǎn)發(fā)消息,類似于快遞公司 消息隊列的優(yōu)點 消息隊列的特性 RabbitMQ特點 RabbitMQ核

    2024年01月24日
    瀏覽(49)
  • Spring整合RabbitMQ——生產(chǎn)者

    Spring整合RabbitMQ——生產(chǎn)者

    添加依賴坐標(biāo),在producer和consumer模塊的pom文件中各復(fù)制一份。 配置producer的配置文件 配置producer的xml配置文件 編寫測試類發(fā)送消息

    2024年02月07日
    瀏覽(28)
  • Spring Boot 整合 RabbitMQ 實現(xiàn)延遲消息

    Spring Boot 整合 RabbitMQ 實現(xiàn)延遲消息

    消息隊列(Message Queuing,簡寫為 MQ)最初是為了解決金融行業(yè)的特定業(yè)務(wù)需求而產(chǎn)生的。慢慢的,MQ 被應(yīng)用到了更多的領(lǐng)域,然而商業(yè) MQ 高昂的價格讓很多初創(chuàng)公司望而卻步,于是 AMQP(Advanced Message Queuing Protocol,高級消息隊列協(xié)議)應(yīng)運而生。 隨著 AMQP 草案的發(fā)布,兩個月

    2024年04月08日
    瀏覽(29)
  • 消息隊列——spring和springboot整合rabbitmq

    消息隊列——spring和springboot整合rabbitmq

    目錄 spring整合rabbitmq——生產(chǎn)者 rabbitmq配置文件信息 倒入生產(chǎn)者工程的相關(guān)代碼 簡單工作模式 spring整合rabbitmq——消費者 spring整合rabbitmq——配置詳解 SpringBoot整合RabbitMQ——生產(chǎn)者 ?SpringBoot整合RabbitMQ——消費者 ? 使用原生amqp來寫應(yīng)該已經(jīng)沒有這樣的公司了 創(chuàng)建兩個工程

    2024年02月16日
    瀏覽(28)
  • Springboot 實踐(13)spring boot 整合RabbitMq

    前文講解了RabbitMQ的下載和安裝,此文講解springboot整合RabbitMq實現(xiàn)消息的發(fā)送和消費。 1、創(chuàng)建web project項目,名稱為“SpringbootAction-RabbitMQ” 2、修改pom.xml文件,添加amqp使用jar包 ?? !--? RabbitMQ -- ??? ????dependency ??????????? groupIdorg.springframework.boot/groupId ????????

    2024年02月09日
    瀏覽(23)
  • Spring整合RabbitMQ——生產(chǎn)者(利用配置類)

    Spring整合RabbitMQ——生產(chǎn)者(利用配置類)

    配置RabbitMQ的基本信息,用來創(chuàng)建連接工廠的 編寫啟動類 編寫配置類

    2024年02月07日
    瀏覽(24)
  • RabbitMQ和spring boot整合及其他內(nèi)容

    在現(xiàn)代分布式應(yīng)用程序的設(shè)計中,消息隊列系統(tǒng)是不可或缺的一部分,它為我們提供了解耦組件、實現(xiàn)異步通信和確保高性能的手段。RabbitMQ,作為一款強大的消息代理,能夠協(xié)助我們實現(xiàn)這些目標(biāo)。在本篇CSDN博客中,我們將探討一些高級主題,包括RabbitMQ與Spring Boot的整合、

    2024年02月07日
    瀏覽(22)
  • Spring Boot整合RabbitMQ之發(fā)布與訂閱模式

    Spring Boot整合RabbitMQ之發(fā)布與訂閱模式

    RabbitMQ的模式中,常用的模式有:簡單模式,發(fā)布與訂閱模式,工作模式,路由模式,主題模式。簡單模式不太會運用到工作中,我們可以使用 RabbitMQ 的發(fā)布訂閱模式,實現(xiàn): 用戶發(fā)布動態(tài),其“粉絲”收到其發(fā)布動態(tài)的消息 用戶下訂單,庫存模塊、支付模塊等收到消息并

    2024年02月12日
    瀏覽(22)
  • Spring Boot整合RabbitMQ之路由模式(Direct)

    Spring Boot整合RabbitMQ之路由模式(Direct)

    RabbitMQ中的路由模式(Direct模式)應(yīng)該是在實際工作中運用的比較多的一種模式了,這個模式和發(fā)布與訂閱模式的區(qū)別在于路由模式需要有一個routingKey,在配置上,交換機類型需要注入DirectExchange類型的交換機bean對象。在交換機和隊列的綁定過程中,綁定關(guān)系需要在綁定一個

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包