Spring Cloud AWS 3.0.2中如何配置@SQSListener的删除策略?
Spring Cloud AWS 3.x 全局配置SQS监听确认模式(替代原deletionPolicy)
在Spring Cloud AWS 3.x版本中,原@SqsListener的deletionPolicy参数已被移除,取而代之的是通过AcknowledgementMode配置消息确认/删除策略。如果你不想通过自定义SqsMessageListenerContainerFactory并手动指定factory属性的方式实现,完全可以借助自动配置的全局属性来统一设置:
全局配置方式
通过application.yml或application.properties配置默认的确认模式,自动配置类SqsAutoConfiguration会自动将该配置应用到默认的SqsMessageListenerContainerFactory中:
YAML配置示例
spring: cloud: aws: sqs: listener: acknowledgement-mode: ON_SUCCESS
Properties配置示例
spring.cloud.aws.sqs.listener.acknowledgement-mode=ON_SUCCESS
使用方式
配置完成后,你的@SqsListener无需再指定factory属性,直接声明队列即可自动应用ON_SUCCESS的确认策略:
@SqsListener("myQueue") public void handleMessage(Message message) { // 业务逻辑处理 }
自定义特定队列的策略
如果需要给个别队列设置不同的确认模式,才需要像你之前那样自定义命名的SqsMessageListenerContainerFactory,并在对应@SqsListener中指定factory属性。全局配置适用于大部分统一策略的场景,能减少重复代码。
内容的提问来源于stack exchange,提问作者Keith Bennett
相关产品推荐
相关产品推荐

