ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 简介 spring-amqp二个核心类RabbitAdmin和RabbitTemplate类 1. RabbitAdmin类完成对Exchange,Queue,Binging的操作,在容器中管理了RabbitAdmin类的时候,可以对Exchange,Queue,Binging进行自动声明。 2. RabbitTemplate类是发送和接收消息的工具类 Spring AMQP项目将核心Spring概念应用于基于AMQP的消息传递解决方案的开发。 它提供了一个“模板”(template)作为发送和接收消息的高级抽象。 它还通过“侦听器容器(listener container)”为消息驱动的POJO提供支持。 这些库促进AMQP资源的管理,同时促进使用依赖注入和声明式配置。 在所有这些情况下,您将看到与Spring框架中的JMS支持的相似之处。 Spring AMQP包括两个部分;spring-amqp是对amqp的一些概念的一些抽象。spring-rabbit是对AMQP的实现[RabbitMQ](https://link.jianshu.com?t=https://www.rabbitmq.com/)的实现 **特征** 1. 异步处理消费消息的一个监听容器(`Listener container`) 2. 使用`RabbitTemplate`类的实例来发送和接收消息。 3. 使用`RabbitAdmin`去自动声明队列(`queues`),交换机(`exchanges`),绑定(`bindings`) `spring-amqp`模块是对AMQP协议的一个抽象和封装。所以说对所有的AMQP的实现都进行的抽象和封装,比如 `org.springframework.amqp.core.Binding`:绑定的封装,类型有`QUEUE`和`EXCHANGE`。 `org.springframework.amqp.core.Exchange`:其有基本的四种实现 `org.springframework.amqp.core.Message`:消息是由属性和body构成,将属性也封装成一个对象MessageProperties。 `org.springframework.amqp.core.MessageProperties`:对消息属性进行了抽象。 `org.springframework.amqp.core.Queue`:队列的封装。 还有对消息的转换进行了封装,相关的类在`org.springframework.amqp.support.converter`包下面。 `spring-rabbit`模块是建立在`spring`,`spring-amqp`,`amqp-client`(rabbitmq java client)之上的,是具体操作RabbitMQ的,底层对`Rabbitmq`的操作是使用`amqp-client`的。 二个核心类,一个是`org.springframework.amqp.rabbit.core.RabbitAdmin`和`org.springframework.amqp.rabbit.core.RabbitTemplate` `spring-rabbit`对日志进行了扩展,可以将日志发送到mq中