Spring with RabbitMQ(数据类型转JSON)

1、pom

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

2、订阅者

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class XxRabbitListener {

    @RabbitListener(queues = "xxx")
    public void ListenerFanoutQueue3(String msg) {
        log.info("消费者接收到xxx的消息【" + msg + "】");
    }

}

3、配置文件

# rabbitmq
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=xxx
spring.rabbitmq.virtual-host=

 4、数据类型转换配置类

如果你需要发送一个对象而不是字符串,确保你的对象可以被序列化(例如,通过实现Serializable接口),并且你的RabbitTemplate配置了正确的MessageConverter。例如,使用Jackson2JsonMessageConverter来序列化JSON数据:

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
 
@Configuration
public class RabbitConfig {
 
    @Bean
    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
        RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
        rabbitTemplate.setMessageConverter(jsonMessageConverter());
        return rabbitTemplate;
    }
 
    @Bean
    public Jackson2JsonMessageConverter jsonMessageConverter() {
        return new Jackson2JsonMessageConverter(new ObjectMapper());
    }
}

5、消息发送

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
 
public class MyMessageSender {
 
    @Autowired
    private RabbitTemplate rabbitTemplate;
 
    public void sendStringMessage(String message, String routingKey) {
        rabbitTemplate.convertAndSend("exchangeName", routingKey, message);
    }
}

 

posted @ 2024-01-12 16:56  都是城市惹的祸  阅读(23)  评论(0)    收藏  举报