Compare commits
4
Commits
bde3725684
...
5773645739
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5773645739 | ||
|
|
0eeee6ba1f | ||
|
|
0cab9d6b24 | ||
|
|
dc14fd3bb9 |
@@ -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"));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user