在Spring boot中自定义RabbitMQ的messageConverter

@Configuration
public class GlobalConfig {
    //以下配置RabbitMQ消息服务
    @Autowired
    public ConnectionFactory connectionFactory;

    @Bean
    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        factory.setConcurrentConsumers(3);
        factory.setMaxConcurrentConsumers(10);
        return factory;
    }
    @Bean
    public MessageConverter jsonMessageConverter() {
        return new Jackson2JsonMessageConverter();
    }

    @Bean
    public RabbitTemplate rabbitTemplate() {
        RabbitTemplate template = new RabbitTemplate(connectionFactory);
        template.setMessageConverter(jsonMessageConverter());
        return template;
    }
}

这样配置后,就可以通过rabbitTemplate.convertAndSend(createCustomerQueueName, requestWrapper);来自动序列化成json字符串了。

RequestWrapper requestWrapper = new RequestWrapper();
rabbitTemplate.convertAndSend("queue", requestWrapper);
消费的地方是

@RabbitListener(queues = "queue")
public void processCreateCustomer(@Payload RequestWrapper requestWrapper, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag, Channel channel) throws IOException {
	// 处理成功
	channel.basicAck(deliveryTag,false);
	// 处理失败
	channel.basicNack(deliveryTag, false, true);
}


猜你喜欢

转载自blog.csdn.net/gwj41/article/details/79269320