专栏名称: 阳春三月594
若有恒何必三更眠五更起,最无益莫过一日曝十日寒。
目录
相关文章推荐
雪球  ·  【港股午评:恒生指数涨2.93% ... ·  昨天  
VC/PE/MA金融圈  ·  千亿市值蒸发,又有造车新势力破产了 ·  2 天前  
西部财经融媒  ·  2月LPR保持不变:1年期3.1%,5年期以 ... ·  2 天前  
西部财经融媒  ·  2月LPR保持不变:1年期3.1%,5年期以 ... ·  2 天前  
51好读  ›  专栏  ›  阳春三月594

spring整合rabbitmq

阳春三月594  · 简书  ·  · 2021-01-02 09:32

正文

生产者

1、导入依赖

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.2.5.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.2.5.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、编写配置文件


<?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

http://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="rabbitmq.properties"/>

<!--定义rabbitmq,connnectionFactory-->

<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" />

<!--定义持久化队列,不存在则自动创建,如果不存在交换机,则绑定到默认交换机direct,名字为"",路由键为队列名称 -->

<rabbit:queue id="spring_queue" name="spring_queue" auto-declare="true"/>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~广播;所有队列都能收到消息~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->

<!--定义广播交换机中的持久化策略,如果不存在,就自动创建-->

<rabbit:queue id="spring_fanout_queue_01" name="spring_fanout_queue_01" auto-declare="true"/>

<rabbit:queue id="spring_fanout_queue_02" name="spring_fanout_queue_02" 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_01"/>

<rabbit:binding queue="spring_fanout_queue_02"/>

</rabbit:bindings>

</rabbit:fanout-exchange>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~通配符;*匹配一个单词,#匹配多个单词 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->

<rabbit:queue id="spring_topic_queue_star" name="spring_topic_queue_star"  auto-declare="true"/>

<rabbit:queue id="spring_topic_queue_hall" name="spring_topic_queue_hall"  auto-declare="true"/>

<rabbit:queue id="spring_topic_queue_hall02" name="spring_topic_queue_hall02"  auto-declare="true"/>

<rabbit:topic-exchange id="spring_topics_change" name="spring_topics_change" auto-declare="true">

<rabbit:bindings>

<rabbit:binding pattern="item.*" queue="spring_topic_queue_star"/>

<rabbit:binding pattern="item.#" queue="spring_topic_queue_hall"/>

<rabbit:binding pattern="book.#" queue="spring_topic_queue_hall02"/>

</rabbit:bindings>

</rabbit:topic-exchange>

<!--定义rabbitTemplate对象操作可以在代码中方便发送消息-->

<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>

</beans>


3、发送消息

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = "classpath:spring-rabbitmq-producer.xml")

public class ProducerTest {

@Autowired

private RabbitTemplate rabbitTemplate;

@Test

public  void  test00(){

System.out.println(rabbitTemplate);

}

@Test

public  void  test01(){

rabbitTemplate.convertAndSend("spring_queue","hello spring rabbit".getBytes());

}

/*发送fanout消息*/

@Test







请到「今天看啥」查看全文