SQS 接收器 - Spring 启动

SQS Receiver - Spring Boot

我尝试使用以下代码在我的 spring 引导应用程序中创建 SQS 队列侦听器

AmazonSQSAsyncClient amazonSQSAsyncClient= new AmazonSQSAsyncClient(getProfileCredentialsProvider());

但是 AmazonSQSAsyncClient 似乎已被弃用。是否有使用构建器创建此对象的不同方法?

这个怎么样?

AmazonSQSAsyncClientBuilder.standard()
                .withCredentials(getProfileCredentialsProvider())
                .build();

JavaDocs 中确实提到了这一点:

* @deprecated use {@link AmazonSQSAsyncClientBuilder#withCredentials(AWSCredentialsProvider)}
 */
@Deprecated
public AmazonSQSAsyncClient(AWSCredentialsProvider awsCredentialsProvider) {

对于那些正在寻找定义侦听器的标准方法的人。

在您的应用程序中包含 spring-cloud-aws-messaging,注意不要包含 spring-cloud-aws-started-messaging.

然后您可以使用两种创建侦听器的方法:

@SqsListener(value = "logical queue name")

并以编程方式

@Autowired
private SimpleMessageListenerContainer simpleMessageListenerContainer;
...
simpleMessageListenerContainer.start("logical queue name");

spring 将为您处理 AmazonSQS 客户端的创建。

注意:对于 @SqsListener 注释,您需要 @EnableSqs