springboot--@RabbitListener消息确认修改为手动确认

springboot项目中,如果使用@RabbitListener注解,此时消息的ack默认为auto,即为自动确认,如果想要使用手动确认可以进行设置。containerFactory属性可以让我们自定义container的一些属性,当然消息的确认方式也可以在这里进行确认。代码如下:

  1. containerFactory的自定义
	@Bean
    @ConditionalOnClass
    public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(CachingConnectionFactory connectionFactory) {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
        return factory;
    }
  1. 在使用地方将上述bean引用
	// 此处的containerFactory属性值就是上述定义的Bean的name
	@RabbitListener(containerFactory = "rabbitListenerContainerFactory", bindings = @QueueBinding(value = @Queue(value = "month", durable = "false"),
            exchange = @Exchange(name = "fanout-exchange", durable = "false", type = "fanout")))
    public void monthProcess(Channel channel, Message message){
    }

版权声明:本文为czw_xiaobei原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。