diff --git a/cloud-common/cloud-common-rabbits/pom.xml b/cloud-common/cloud-common-rabbits/pom.xml new file mode 100644 index 0000000..fa6d383 --- /dev/null +++ b/cloud-common/cloud-common-rabbits/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + com.muyu + cloud-common + 3.6.3 + + + cloud-common-rabbit + + + 17 + 17 + UTF-8 + + + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + com.muyu + cloud-common-core + + + + \ No newline at end of file diff --git a/cloud-common/cloud-common-rabbits/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java b/cloud-common/cloud-common-rabbits/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java new file mode 100644 index 0000000..51cb359 --- /dev/null +++ b/cloud-common/cloud-common-rabbits/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java @@ -0,0 +1,41 @@ +package com.muyu.common.rabbit; + +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.messaging.converter.MappingJackson2MessageConverter; +import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory; + +@Configuration +public class RabbitListenerConfigurer implements org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer { + + static { + System.setProperty("spring.amqp.deserialization.trust.all", "true"); + } + + //以下配置RabbitMQ消息服务 + @Autowired + public ConnectionFactory connectionFactory; + + + /** + * 处理器方法工厂 + * @return + */ + @Bean + public DefaultMessageHandlerMethodFactory handlerMethodFactory() { + DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory(); + // 这里的转换器设置实现了 通过 @Payload 注解 自动反序列化message body + factory.setMessageConverter(new MappingJackson2MessageConverter()); + return factory; + } + + @Override + public void configureRabbitListeners(RabbitListenerEndpointRegistrar rabbitListenerEndpointRegistrar) { + rabbitListenerEndpointRegistrar.setMessageHandlerMethodFactory(handlerMethodFactory()); + } + +} + diff --git a/cloud-common/cloud-common-rabbits/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-rabbits/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..189ea2c --- /dev/null +++ b/cloud-common/cloud-common-rabbits/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.common.rabbit.RabbitListenerConfigurer \ No newline at end of file