0
点赞
收藏
分享

微信扫一扫

RabbitMQ的快速使用

阿尚青子自由写作人 2022-04-14 阅读 43
javarabbitmq

安装

安装步骤忽略,最后能访问localhost:15672即可

使用

pom文件

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

application.properties文件

spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host=/

RabbitmqConfig
RabbitmqConfig主要声明交换机、队列、绑定

@Configuration
public class RabbitmqConfig {
    @Autowired
    AmqpAdmin amqpAdmin;

    @Autowired
    RabbitTemplate rabbitTemplate;

    @Bean
    public void create1(){
        //声明一个Direct类型交换机
        DirectExchange exchange = new DirectExchange("directExchange1", true, false);
        amqpAdmin.declareExchange(exchange);

        //声明一个队列
        Queue queue = new Queue("queue1", true, false, false);
        amqpAdmin.declareQueue(queue);

        //将队列和交换机进行绑定
        Binding binding = new Binding("queue1", Binding.DestinationType.QUEUE, "directExchange1", "routingkey1", null);
        amqpAdmin.declareBinding(binding);
    }
}

RabbitMQ监听类

@Service
public class RabbitmqTest1Impl {

    @RabbitListener(queues = {"queue1"})
    public void getMessage(Message message, Channel channel) throws Exception {
        long deliveryTag = message.getMessageProperties().getDeliveryTag();

        byte[] body = message.getBody();
        MessageProperties messageProperties = message.getMessageProperties();
        String s = new String(body);
        System.out.println("消费消息:"+s+" deliveryTag="+deliveryTag);

    }
}

Controller测试类

@Controller
@RequestMapping("/rabbit")
public class RabbitController {
    @Autowired
    RabbitTemplate rabbitTemplate;

    @RequestMapping("/test1")
    @ResponseBody
    public String test1() {
        Message message = new Message("哈哈哈".getBytes());
        rabbitTemplate.send("directExchange1", "routingkey1", message);
        return "ok";
    }
}
举报

相关推荐

0 条评论