一、RabbmitAdmin
二、SpringAMQP声明
三、消息模板-RabbmitTemplate
四、SpringAMQP消息容器-
SimpleMessageListenerContainer
五、SpringAMQP消息适配器-
MessageListenerAdapter使用
队列名称 和 方法名称 mapping
/** * 1 适配器方式. 默认是有自己的方法名字的:handleMessage // 可以自己指定一个方法的名字: consumeMessage // 也可以添加一个转换器: 从字节数组转换为String MessageListenerAdapter adapter = new MessageListenerAdapter(new MessageDelegate()); adapter.setDefaultListenerMethod("consumeMessage"); adapter.setMessageConverter(new TextMessageConverter()); container.setMessageListener(adapter); */ /** * 2 适配器方式: 我们的队列名称 和 方法名称 也可以进行一一的匹配 * MessageListenerAdapter adapter = new MessageListenerAdapter(new MessageDelegate()); adapter.setMessageConverter(new TextMessageConverter()); Map<String, String> queueOrTagToMethodName = new HashMap<>(); queueOrTagToMethodName.put("queue001", "method1"); queueOrTagToMethodName.put("queue002", "method2"); adapter.setQueueOrTagToMethodName(queueOrTagToMethodName); container.setMessageListener(adapter); */
六、SpringAMQP消息转换器-MessageConverter讲解
6.1 Json 和java 对象如何转换?
fastJson 转java 和mq自带的这种委派json转对象孰优孰劣?
MessageListenerAdapter adapter = new MessageListenerAdapter(new MessageDelegate()); adapter.setDefaultListenerMethod("consumeMessage"); Jackson2JsonMessageConverter jackson2JsonMessageConverter = new Jackson2JsonMessageConverter(); DefaultJackson2JavaTypeMapper javaTypeMapper = new DefaultJackson2JavaTypeMapper(); jackson2JsonMessageConverter.setJavaTypeMapper(javaTypeMapper); adapter.setMessageConverter(jackson2JsonMessageConverter); container.setMessageListener(adapter);
6.2 支持text 、json、java对象、image、pdf 的转换