码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot---RabbitMQ_2 (使用注解方式)

时间:2020-09-17 22:24:43      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:queue   启动   sms   gem   转换   实现   交换器   json格式   font   

使用注解方式实现RabbitMq整合

在进行该部分实验前把之前的交换器和队列删除,在RabbitMq管理后台完成。

1、RabbitMq配置类

@Configuration
public class RabbitMQConfig {
    /**
     * 定制JSON格式的消息转换器
     * @return
     */
    @Bean
    public MessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }
    
    //1、定义fanout类型的交换器
    @Bean
    public Exchange fanout_exchange(){
        return ExchangeBuilder.fanoutExchange("fanout_exchange").build();
    }

    //2、定义两个不同名称的消息队列
    @Bean
    public Queue fanout_queue_email(){ return new Queue("fanout_queue_email"); }
    @Bean
    public Queue fanout_queue_sms(){ return new Queue("fanout_queue_sms"); }

    //3、将两个不同名称的消息队列跟交换器进行绑定
    @Bean
    public Binding bindingEmail(){
        return BindingBuilder.bind(fanout_queue_email()).to(fanout_exchange()).with("").noargs();
    }
    @Bean
    public Binding bindingSms(){
        return BindingBuilder.bind(fanout_queue_sms()).to(fanout_exchange()).with("").noargs();
    }
}

2、Service类

@Service
public class MessageService {
    @RabbitListener(bindings = @QueueBinding(value = @Queue("fanout_queue_email"),
    exchange =@Exchange(value = "fanout_exchange",type="fanout")))
    public void psubConsumerEmailAno(User user){
        System.out.println("邮件业务接收到消息:"+user);
    }
    @RabbitListener(bindings = @QueueBinding(value = @Queue("fanout_queue_sms"),
            exchange =@Exchange(value = "fanout_exchange",type="fanout")))
    public void psubConsumerSmsAno(User user){
        System.out.println("短信业务接收到消息:"+user);
}
}

3、在测试类中运行发送消息的方法(注意,在执行测试方法之前需要将服务器类的监听代码注释掉)。

    @Test
    public void publishMag(){
        User user=new User();
        user.setAge(30);
        user.setId(10000L);
        user.setEmail("test@aliyun.com");
        user.setUsername("builderMsg");
        for(int i=0;i<100;i++){
            rabbitTemplate.convertAndSend("fanout_exchange","",user);
        }
        System.out.println("消息发送成功!");
    }

4、启动工程,观察控制台输出。

技术图片

 

SpringBoot---RabbitMQ_2 (使用注解方式)

标签:queue   启动   sms   gem   转换   实现   交换器   json格式   font   

原文地址:https://www.cnblogs.com/technicist/p/13654944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!