SpringBoot---RabbitMQ_2 (使用注解方式)
2021-03-27 21:26
标签:queue 启动 sms gem 转换 实现 交换器 json格式 font 使用注解方式实现RabbitMq整合 在进行该部分实验前把之前的交换器和队列删除,在RabbitMq管理后台完成。 1、RabbitMq配置类 2、Service类 3、在测试类中运行发送消息的方法(注意,在执行测试方法之前需要将服务器类的监听代码注释掉)。 4、启动工程,观察控制台输出。 SpringBoot---RabbitMQ_2 (使用注解方式) 标签:queue 启动 sms gem 转换 实现 交换器 json格式 font 原文地址:https://www.cnblogs.com/technicist/p/13654944.html@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();
}
}
@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);
}
}
@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){
rabbitTemplate.convertAndSend("fanout_exchange","",user);
}
System.out.println("消息发送成功!");
}
文章标题:SpringBoot---RabbitMQ_2 (使用注解方式)
文章链接:http://soscw.com/index.php/essay/68749.html