SpringBoot整合RabbitMQ-创建队列并绑定交换机

SpringBoot整合RabbitMQ-创建队列并绑定交换机
强烈推介IDEA2021.1.3破解激活,IntelliJ IDEA 注册码,2021.1.3IDEA 激活码  

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说SpringBoot整合RabbitMQ-创建队列并绑定交换机,希望能够帮助大家进步!!!

pom依赖
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>
 
yml配置文件:
 
  rabbitmq:
    virtual-host: maomao #我自己的虚拟主机
    port: 5672
    host: 192.168.6.128 #我自己的虚拟机地址
    username: rabbit
    password: 123456 #我自己的rabbitmq的密码

 

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * rabbitMq 配置类
 */
@Configuration
public class RabbitConfig {

    /**
     * 计划消息交换机名称
     */
    @Value("${rabbitmq.plan.exchangeName}")
    public String exchangeName;

    /**
     * 计划消息队列
     */
    @Value("${rabbitmq.plan.queueName}")
    public String queueName;

    /**
     * 定义一个的队列
     * Queue 可以有4个参数
     *      1.队列名
     *      2.durable       持久化消息队列 ,rabbitmq重启的时候不需要创建新的队列 默认true
     *      3.auto-delete   表示消息队列没有在使用时将被自动删除 默认是false
     *      4.exclusive     表示该消息队列是否只在当前connection生效,默认是false
     */
    @Bean("PLAN_QUEUE")
    public Queue PLAN_QUEUE() {
        return new Queue(queueName);
    }

    /**
     * 计划消息交换机
     * @return
     */
    @Bean("PLAN_TOPIC_EXCHANGE")
    public TopicExchange TOPIC_EXCHANGE(){
        return new TopicExchange(exchangeName);
    }

    /**
     * 计划消息队列绑定计划交换机
     * @param queue 计划队列
     * @param topicExchange 计划交换机
     * @return
     */
    @Bean
    public Binding planQueueBinding(@Qualifier("PLAN_QUEUE") Queue queue,@Qualifier("PLAN_TOPIC_EXCHANGE") TopicExchange topicExchange){
        return BindingBuilder.bind(queue).to(topicExchange).with("");
    }

    /**
     * 序列化机制为JSON
     * @return
     */
    @Bean
    public MessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }

}

 

本文来源huayang183,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/18259

发表评论