引入依赖
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
编写config类
java
@Configuration
public class RabbitmqConfig {
public static final String RECORD_QUEUE = "teaching-assistant-record_queue";
@Bean
public Jackson2JsonMessageConverter jsonMessageConverter() {
return new Jackson2JsonMessageConverter();
}
@Bean
public Queue queue() {
//创建一个队列队列,并指定队列的名字
return new Queue(RECORD_QUEUE,true);
}
}
使用rabbitmq
java
@Override
public String add(ExamRecordDto examRecordDto) {
rabbitTemplate.convertAndSend("", RabbitmqConfig.RECORD_QUEUE,examRecordDto);
return "Exam record added successfully";
}
@Autowired
private ExamRecordMapper examRecordMapper;
@RabbitListener(queues = {RabbitmqConfig.RECORD_QUEUE})
public void receiveHelloQueueMessage(ExamRecordDto examRecordDto) {
System.out.println("消费者收到消息:"+examRecordDto.toString());
QueryWrapper<ExamRecordEntity> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("exam_id",examRecordDto.getExamId());
queryWrapper.eq("exercise_id",examRecordDto.getExerciseId());
queryWrapper.eq("user_id",examRecordDto.getUserId());
if(examRecordMapper.selectOne(queryWrapper)!=null){
examRecordMapper.delete(queryWrapper);
}
examRecordMapper.insert(examRecordDto.toEntity());
}