• springboot 搭建一个 测试rabbitmq连通性demo


    1.pom

    		<!-- Spring Boot Starter for RabbitMQ -->
    		
    			org.springframework.boot
    			spring-boot-starter-amqp
    		
    

    2.config

    package com.example.demo.config;
    
    import org.springframework.amqp.core.Queue;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    
    /**
     * @author wangjn
     * @Description
     */
    @Configuration
    public class RabbitMQConfig {
    
        @Bean
        public Queue myQueue() {
            // 这里可以根据需要配置队列的属性,例如:
            // 是否持久化、是否排他、是否自动删除、队列参数等
            return new Queue("myQueue", true); // 第二个参数true表示队列持久化
        }
    }
    
    

    3.service

    package com.example.demo.service;
    
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.stereotype.Service;
    
    /**
     * @author wangjn
     * @Description
     * @createTime 2024-06-13 14:03:00
     */
    @Service
    public class RabbitMqService {
    
        private final RabbitTemplate rabbitTemplate;
    
        public RabbitMqService(RabbitTemplate rabbitTemplate) {
            this.rabbitTemplate = rabbitTemplate;
        }
    
        public void sendMessage(String queueName, String message) {
            rabbitTemplate.convertAndSend(queueName, message);
        }
    }
    
    

    4.controller

    package com.example.demo.web;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    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.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @author wangjn
     * @Description
     * @createTime 2024-06-13 14:09:00
     */
    @RestController
    public class RabbitMQController {
        private static final Logger LOGGER = LoggerFactory.getLogger(RabbitMQController.class);
        @Autowired
        private RabbitTemplate rabbitTemplate;
    
        @PostMapping("/sendToRabbit")
        public String sendMessageToRabbit(@RequestParam("message") String message) {
            rabbitTemplate.convertAndSend("myQueue", message);
            return "Message sent to RabbitMQ successfully!";
    
        }
    
        @GetMapping("/checkRabbitMessages")
        public String checkForMessages() {
            return "Checking for messages...";
        }
    
        @RabbitListener(queues = "myQueue")
        public void listenToRabbit(String message) {
            LOGGER.info("Message received from RabbitMQ: {}", message);
        }
    
    }
    
    
  • 相关阅读:
    用 VS Code 搞Qt6:使用 PySide 6
    基于JAVA奇妙店铺电子商务网站计算机毕业设计源码+数据库+lw文档+系统+部署
    Deep Learning(15-草履虫)
    Solidity优化 - 减少智能合约gas消耗
    华为政企协作平板产品集
    centos7 安装apr1.7
    前端---知识
    XSS靶场prompt.ml过关详解
    TikTok大数据解密:社交媒体的秘密洞察
    Jenkins持续集成1
  • 原文地址:https://blog.csdn.net/qq_41865739/article/details/139734591