SpringBoot整合RabbitMQ

1.父工程引入相关的依赖

    <?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>
        <packaging>pom</packaging>
        <modules>
            <module>product</module>
            <module>consumer</module>
        </modules>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.4.5</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.ykq</groupId>
        <artifactId>springboot-rabbit-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>springboot-rabbit-parent</name>
        <description>springboot整合rabbitMQ</description>
        <properties>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <!--rabbitMQ的依赖: 启动类加载。读取配置文件:
               springboot自动装配原理: 引用starter启动依赖时,把对应的自动装配类加载进去,该自动装配类可以读取application配置文件中
               内容。 DispatherServlet
            -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.72</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.amqp</groupId>
                <artifactId>spring-rabbit-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

2.创建子model

在这里插入图片描述

2.1相应的生产者和消费的配置

    server:
      port: 9999
    #rabbit的配置
    spring:
      rabbitmq:
        host: 链接的IP

2.2生产者


    
    import com.alibaba.fastjson.JSON;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.HashMap;
    import java.util.Map;

    @RestController
    public class HelloController {
        @Autowired
        private RabbitTemplate rabbitTemplate;
    
        @GetMapping("hello")
        public String hello(){ //业务层
            System.out.println("下单成功");
            //String exchange, String routingKey, Object message
            Map<String,Object> map=new HashMap<>();
            map.put("productId",1);
            map.put("num",10);
            map.put("price",12);
            rabbitTemplate.convertAndSend("ban129_exchange","", JSON.toJSONString(map)); //序列化过程
            return "下单成功";
        }
    }

2.3消费者

   
    
    import com.alibaba.fastjson.JSON;
    import org.springframework.amqp.core.Message;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import java.util.Map;
    

    @Component
    public class MyRabbitListener {
    
        //队列中存在消息则立即回调该方法
        @RabbitListener(queues = {"队列"})
        public void listener(String msg){
            Map map = JSON.parseObject(msg, Map.class);
            System.out.println(map);
        }
    }
  

使用Java代码创建队列信息

Java代码创建列队

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值