1. 程式人生 > 其它 >Springboot註解方式整合RabbitMQ

Springboot註解方式整合RabbitMQ

技術標籤:rabbitmqspring bootrabbitmq註解方式

第1步:引入POM依賴

  • 核心POM
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 全部pom.xml內容
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <parent> <
groupId
>
org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.13.RELEASE</version> <relativePath/> </parent> <groupId>fun.gosuncn</groupId> <artifactId>rabbitmq</
artifactId
>
<version>0.0.1-SNAPSHOT</version> <name>rabbitmq</name> <description>RabbitMQ Test</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

第2步:配置application.properties檔案

spring.rabbitmq.host=49.232.202.201
spring.rabbitmq.port=5672
spring.rabbitmq.username=gosuncn
spring.rabbitmq.password=112233
spring.rabbitmq.virtual-host=/gosuncn
# tomcat port
server.port=80

第3步:消費者程式碼

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class Work {

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(value = "test1", durable = "false", exclusive = "false", autoDelete = "false"),
            exchange = @Exchange(name = "test", durable = Exchange.FALSE),
            key = "test1"))
    public void work01(Message message) {
        System.out.println("Work01  : [" + new String(message.getBody()) + "]");
    }

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(value = "test2", durable = "false", exclusive = "false", autoDelete = "false"),
            exchange = @Exchange(name = "test", durable = Exchange.FALSE),
            key = "test2"))
    public void work02(Message message) {
        System.out.println("Work02  : [" + new String(message.getBody()) + "]");
    }

}

第4步:傳送者程式碼

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SendMessageController {

    private final RabbitTemplate rabbitTemplate;

    public SendMessageController(RabbitTemplate rabbitTemplate) {
        this.rabbitTemplate = rabbitTemplate;
    }

    @GetMapping("/")
    public String sendDirectMessage() {
        String message = "I love three things in this world,the sun ,the moon and you.";
        rabbitTemplate.convertAndSend("test", "test1", message);
        rabbitTemplate.convertAndSend("test", "test2", message);
        return message;
    }

}

第5步:訪問 http://127.0.0.1/ 測試執行,即可。