From 2c412b32a7961a690f89b059b28ead85632d87de Mon Sep 17 00:00:00 2001 From: Dftre <3066417822@qq.com> Date: Sun, 6 Oct 2024 19:57:13 +0800 Subject: [PATCH] =?UTF-8?q?rabbitmq=20=E5=88=9D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/application-middleware.yml | 1 - .../rabbitmq/DirectRabbitConfig.java | 29 +++++++++++++++++-- .../middleware/rabbitmq/DirectReceiver.java | 14 +++++++-- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-middleware.yml b/ruoyi-admin/src/main/resources/application-middleware.yml index 29d1945..97d156d 100644 --- a/ruoyi-admin/src/main/resources/application-middleware.yml +++ b/ruoyi-admin/src/main/resources/application-middleware.yml @@ -27,7 +27,6 @@ spring: name: ruoyi #配置rabbitMq 服务器 rabbitmq: - enable: false host: 127.0.0.1 port: 5672 username: guest diff --git a/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectRabbitConfig.java b/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectRabbitConfig.java index 06e6c06..425b96b 100644 --- a/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectRabbitConfig.java +++ b/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectRabbitConfig.java @@ -4,12 +4,17 @@ import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar; import org.springframework.amqp.support.converter.DefaultClassMapper; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.amqp.support.converter.MessageConverter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +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; /** * @Author : JCccc @@ -17,8 +22,7 @@ import org.springframework.context.annotation.Configuration; * @Description : **/ @Configuration -@ConditionalOnProperty(prefix = "spring.rabbitmq", name = { "enable" }, havingValue = "true", matchIfMissing = false) -public class DirectRabbitConfig { +public class DirectRabbitConfig implements RabbitListenerConfigurer{ // 队列 起名:TestDirectQueue @Bean @@ -54,4 +58,23 @@ public class DirectRabbitConfig { jackson2JsonMessageConverter.setClassMapper(defaultClassMapper); return jackson2JsonMessageConverter; } + + + + //以下配置RabbitMQ消息服务 + @Autowired + public ConnectionFactory connectionFactory; + + @Bean + public DefaultMessageHandlerMethodFactory myHandlerMethodFactory() { + DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory(); + // 设置转换器 + factory.setMessageConverter(new MappingJackson2MessageConverter()); + return factory; + } + + @Override + public void configureRabbitListeners(RabbitListenerEndpointRegistrar rabbitListenerEndpointRegistrar) { + rabbitListenerEndpointRegistrar.setMessageHandlerMethodFactory(myHandlerMethodFactory()); + } } \ No newline at end of file diff --git a/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectReceiver.java b/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectReceiver.java index 9dd24ce..c478495 100644 --- a/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectReceiver.java +++ b/ruoyi-middleware/ruoyi-middleware-rabbitmq/src/main/java/com/ruoyi/middleware/rabbitmq/DirectReceiver.java @@ -4,17 +4,25 @@ import java.util.Map; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; @Component -@ConditionalOnProperty(prefix = "spring.rabbitmq", name = { "enable" }, havingValue = "true", matchIfMissing = false) @RabbitListener(queues = "TestDirectQueue") // 监听的队列名称 TestDirectQueue public class DirectReceiver { @RabbitHandler public void process(Map map) { - System.out.println("DirectReceiver消费者收到消息 : " + map.toString()); + System.out.println("DirectReceiver m消费者收到消息 : " + map.toString()); + } + + @RabbitHandler + public void process(String map) { + System.out.println("DirectReceiver s消费者收到消息 : " + map.toString()); + } + + @RabbitHandler + public void process(Byte[] b) { + System.out.println("DirectReceiver s消费者收到消息 : " + b.toString()); } } \ No newline at end of file