序言:
在第一篇和第二篇中,描述了自动装配的过程以及如何发送消息到mq。这里会涉及到将数据转化的工作,也就是如何将我们string或者java对象转化到二进制数据,传输到rabbitmq服务器中(在网络中只能传输二进制数据),而又是如何将到rabbitmq服务器传输的二进制数据转化为监听者需要的实体类型,这里就用到了消息转换器(也就是MessageConverter接口,在RabbitAnnotationDrivenConfiguration我们可以看到有该类的定义并将该类与监听工厂类绑定,在RabbitTemplateConfigurer中与RabbitTemplate绑定,说明我们在发送与接受时都需要该类使用)
1:MessageConverter
该接口为消息转化接口
ublic interface MessageConverter {
/**
* 将一个java 对象转化为message
* @param object 被转化的对象
* @param messageProperties message属性信息
* @return the Message 转化的Message
* @throws MessageConversionException 转化失败抛出的异常
*/
Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException;
/**
* 上述toMessage的重载方法 本质还是调用toMessage
* @param object 被转化的对象
* @param messageProperties message属性信息
* @param genericType the type to use to populate type headers.
* @return the Message 转化的Message
* @throws MessageConversionException 转化失败抛出的异常
* @since 2.1
*/
default Message toMessage(Object object, MessageProperties messageProperties, @Nullable Type genericType)
throws MessageConversionException {
return toMessage(object, messageProperties);
}
/**
* 将一个Message转化为java对象
* @param message 被转化的Message
* @return 转化的Java对象
* @throws M