springboot項目中,如果使用@RabbitListener
註解,此時消息的ack
默認爲auto
,即爲自動確認,如果想要使用手動確認可以進行設置。containerFactory
屬性可以讓我們自定義container的一些屬性,當然消息的確認方式也可以在這裏進行確認。代碼如下:
- containerFactory的自定義
@Bean
@ConditionalOnClass
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(CachingConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
return factory;
}
- 在使用地方將上述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){
}