Compare commits

..
4 Commits
Author SHA1 Message Date
wonder 5773645739 ✅Test: 消息发送测试 2025-10-15 12:24:17 +08:00
wonder 0eeee6ba1f ✨Feat: 实现消息发送方法 2025-10-15 12:24:04 +08:00
wonder 0cab9d6b24 🔧Chore: 定义常量 2025-10-15 12:23:37 +08:00
wonder dc14fd3bb9 🔄Update: 配置JSON消息转换器 2025-10-15 12:23:16 +08:00
6 changed files with 70 additions and 11 deletions
+5
View File
@@ -40,6 +40,11 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
</dependencies> </dependencies>
@@ -14,8 +14,8 @@ public class MessageConsumer {
// TODO: 定义队列名称常量 // TODO: 定义队列名称常量
// TODO: 可能需要添加日志记录 // TODO: 可能需要添加日志记录
@RabbitListener(queues = "test.queue") // @RabbitListener(queues = "test.queue")
public void receiveMessage(Message message) { // public void receiveMessage(Message message) {
// TODO: 实现消息处理逻辑 // // TODO: 实现消息处理逻辑
} // }
} }
@@ -3,24 +3,31 @@ package cn.hezhaohui.rabbitmq.amqp;
import cn.hezhaohui.rabbitmq.entity.Message; import cn.hezhaohui.rabbitmq.entity.Message;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.Data; import lombok.Data;
import org.springframework.amqp.core.AmqpTemplate; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import static cn.hezhaohui.rabbitmq.constant.RabbitmqConstant.*;
/** /**
* 消息生产者 * 消息生产者
*/ */
@Component @Component
@Data @Data
@Slf4j
public class MessageProducer { public class MessageProducer {
@Resource @Resource
private AmqpTemplate amqpTemplate; private RabbitTemplate rabbitTemplate;
// TODO: 实现发送消息的方法 // 实现发送消息的方法
// TODO: 定义队列名称常量 public void sendEmailMessage(Message message) {
// TODO: 可能需要添加日志记录 rabbitTemplate.convertAndSend(EXCHANGE_NAME, ROUTING_KEY_EMAIL, message);
log.info("发送邮件消息:{}", message);
}
public void sendMessage(Message message) { public void sendSmsMessage(Message message) {
// TODO: 实现发送逻辑 rabbitTemplate.convertAndSend(EXCHANGE_NAME, ROUTING_KEY_SMS, message);
log.info("发送短信消息:{}", message);
} }
} }
@@ -0,0 +1,14 @@
package cn.hezhaohui.rabbitmq.config;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyMessageConverter {
@Bean
MessageConverter createMessageConverter() {
return new Jackson2JsonMessageConverter();
}
}
@@ -0,0 +1,9 @@
package cn.hezhaohui.rabbitmq.constant;
public class RabbitmqConstant {
public static final String EXCHANGE_NAME = "exchange_topics";
public static final String QUEUE_EMAIL_NAME = "email.queue";
public static final String QUEUE_SMS_NAME = "sms.queue";
public static final String ROUTING_KEY_EMAIL = "email.#";
public static final String ROUTING_KEY_SMS = "sms.#";
}
@@ -0,0 +1,24 @@
package cn.hezhaohui.rabbitmq.amqp;
import cn.hezhaohui.rabbitmq.entity.Message;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MessageProducerTest {
@Resource
private MessageProducer messageProducer;
@Test
void sendEmailMessage() {
messageProducer.sendEmailMessage(new Message("hello@example.com"));
}
@Test
void sendSmsMessage() {
messageProducer.sendSmsMessage(new Message("1234567890"));
}
}