Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5773645739 | ||
|
|
0eeee6ba1f | ||
|
|
0cab9d6b24 | ||
|
|
dc14fd3bb9 |
@@ -40,6 +40,11 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ public class MessageConsumer {
|
||||
// TODO: 定义队列名称常量
|
||||
// TODO: 可能需要添加日志记录
|
||||
|
||||
@RabbitListener(queues = "test.queue")
|
||||
public void receiveMessage(Message message) {
|
||||
// TODO: 实现消息处理逻辑
|
||||
}
|
||||
// @RabbitListener(queues = "test.queue")
|
||||
// public void receiveMessage(Message message) {
|
||||
// // TODO: 实现消息处理逻辑
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -3,24 +3,31 @@ package cn.hezhaohui.rabbitmq.amqp;
|
||||
import cn.hezhaohui.rabbitmq.entity.Message;
|
||||
import jakarta.annotation.Resource;
|
||||
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 static cn.hezhaohui.rabbitmq.constant.RabbitmqConstant.*;
|
||||
|
||||
/**
|
||||
* 消息生产者
|
||||
*/
|
||||
@Component
|
||||
@Data
|
||||
@Slf4j
|
||||
public class MessageProducer {
|
||||
|
||||
@Resource
|
||||
private AmqpTemplate amqpTemplate;
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
// TODO: 实现发送消息的方法
|
||||
// TODO: 定义队列名称常量
|
||||
// TODO: 可能需要添加日志记录
|
||||
// 实现发送消息的方法
|
||||
public void sendEmailMessage(Message message) {
|
||||
rabbitTemplate.convertAndSend(EXCHANGE_NAME, ROUTING_KEY_EMAIL, message);
|
||||
log.info("发送邮件消息:{}", message);
|
||||
}
|
||||
|
||||
public void sendMessage(Message message) {
|
||||
// TODO: 实现发送逻辑
|
||||
public void sendSmsMessage(Message message) {
|
||||
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"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user