RabbitMQ - Spring配置 - topic《通配符模式》

 SpringMain_Topic.java

package com.xzp.rabbitmq.spring.topic;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * main程序
 * 交换机为- 》topic:  代表 "通配符模式"《可选择性接收消息, 采用通配符模式 * 符号代表1个, # 符号代表一个或多个》
 */
public class SpringMain_Topic {

    public static void main(final String... args) throws Exception {
        AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring/rabbitmq-context-fanout.xml");
        //RabbitMQ模板
        //RabbitTemplate template = ctx.getBean(RabbitTemplate.class);
        RabbitTemplate amqpTemplate01 = (RabbitTemplate) ctx.getBean("amqpTemplate_fanout");
        RabbitTemplate amqpTemplate02 = (RabbitTemplate) ctx.getBean("amqpTemplate_direct");
        RabbitTemplate amqpTemplate03 = (RabbitTemplate) ctx.getBean("amqpTemplate_topic");

        //发送消息
        String str01 = "Hello, world!, This exchange is fanout !!";
        amqpTemplate01.convertAndSend(str01);
        System.out.println();
        System.out.println("发送消息: " + str01);
        System.out.println();

        //发送消息
        String str02 = "Hello, world!, This exchange is direct !!";
        amqpTemplate02.convertAndSend(str02);
        System.out.println();
        System.out.println("发送消息: " + str02);
        System.out.println();

        //发送消息
        String str03 = "Hello, world!, This exchange is topic !!";
        amqpTemplate03.convertAndSend(str03);
        System.out.println();
        System.out.println("发送消息: " + str03);
        System.out.println();


        // 休眠1秒
        Thread.sleep(1000);
        //容器销毁
        ctx.destroy();
    }
}

 Customer01.java

package com.xzp.rabbitmq.spring.topic;

/**
 * 消费者1
 * 交换机为- 》topic:  代表 "通配符模式"《可选择性接收消息, 采用通配符模式 * 符号代表1个, # 符号代表一个或多个》
 */
public class Customer01 {

    //具体执行业务的方法
    public void listen(String foo) {

        System.out.println();
        System.out.println();
        System.out.println("topic 消费者 Customer01: " + foo);
        System.out.println();
        System.out.println();

    }
}

Customer02.java

package com.xzp.rabbitmq.spring.topic;

/**
 * 消费者2
 * 交换机为- 》topic:  代表 "通配符模式"《可选择性接收消息, 采用通配符模式 * 符号代表1个, # 符号代表一个或多个》
 */
public class Customer02 {

    //具体执行业务的方法
    public void listen(String foo) {

        System.out.println();
        System.out.println();
        System.out.println("topic 消费者 Customer02: " + foo);
        System.out.println();
        System.out.println();

    }
}

rabbitmq-context-fanout.xml



   
   

   
   
   
   

   
   
   
   


   
   
   

   
   

   
   

   
   
      
         
         
      
   

   
      
         
         
      
   

   
      
         
         
      
   

   
   
      
      
   


   
      
      
   

   
      
      
   

   
   
   

   
   

   
   

 

 

 

你可能感兴趣的:(RabbitMQ)