RabbitMQ结合SpringBoot使用

1、引入spring-boot-starter-amqp

2、application.yml配置

spring:
  rabbitmq:
    host: 192.168.1.235
    username: test     #默认是guest
    password: 123456  #默认是guest
    virtual-host: /tzb #默认是/
    port: 5672  #默认是5672

3、自动配置基本原理

springboot引入spring-boot-starter-amqp后会自动给容器中配置:

连接工厂ConnectionFactory

RabbitTemplate(给RabbitMQ发送和接收消息,类似jdbcTemplate和redisTemplate)。

AmqpAdmin:RabbitMQ系统管理组件(创建交换器和队列等)

RabbitProperties封装了RabbitMQ的配置

4、代码

    @Autowired
    private RabbitTemplate rabbitTemplate;
    @Autowired
    private AmqpAdmin amqpAdmin;

    //简单发送消息
    @Test
    public void contextLoads() {
        Map<String,String> message = new HashMap<>();
        message.put("message","HelloWorld!");
        message.put("data","第一条消息");
        rabbitTemplate.convertAndSend("test_exchange_direct","dog",message);
    }

    //简单接收消息
    @Test
    public void receive(){
        HashMap<String,String> map = (HashMap<String, String>)              rabbitTemplate.receiveAndConvert("test_queue_direct_1");
        System.out.println(map);
    }

监听队列:@RabbitListener 和@EnableRabbit开启基于注解的rabbitmq

    //监听某个队列,当队列有消息时,调用该方法 会根据类型自动封装
    @RabbitListener(queues = "test_queue_direct_1")
    public void recevie(User user){
        System.out.println(user);
    }

消息的序列化:默认是用jdk的序列化,可以自定义json序列化

@Configuration
public class MyRabbitMQConfig {

    @Bean
    public MessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }
}

AmqpAdmin的使用:

    @Test
    public void testAdmin(){
        //创建交换机
        amqpAdmin.declareExchange(new FanoutExchange("fanout_exchange"));
        //创建队列
        amqpAdmin.declareQueue(new Queue("test_queue"));
        //创建绑定规则
        amqpAdmin.declareBinding(new Binding("test_queue",Binding.DestinationType.QUEUE,"fanout_exchange","test.#",null));
    }
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值