繁体   English   中英

awspring SQS 配置在 Spring 引导项目中不起作用

[英]awspring SQS Configuration not working in Spring Boot Project

我们正在尝试从 spring 云 AWS 迁移到新的io.awspring.cloud项目。 该文档指出:

AmazonSQSAsync 客户端会根据提供的凭证自动创建并传递给模板的构造函数。

我正在尝试在本地运行它。 在我的pom.xml我添加了依赖项:

<dependency>
   <groupId>io.awspring.cloud</groupId>
   <artifactId>spring-cloud-aws-messaging</artifactId>
   <version>${spring.cloud.aws}</version> 
</dependency>

我删除了创建 AmazonSQSAsync 客户端的代码。 根据文档,我仍然定义了一个 QueueMessagingTemplate

import io.awspring.cloud.messaging.core.QueueMessagingTemplate;
import com.amazonaws.services.sqs.AmazonSQSAsync;

@Bean
@Qualifier
public QueueMessagingTemplate queueMessagingTemplateFifoSupport(AmazonSQSAsync amazonSQSAsync,
        ObjectMapper objectMapper) {
    MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
    converter.setSerializedPayloadClass(String.class);
    converter.setObjectMapper(objectMapper);

    QueueMessagingTemplate messagingTemplate = new QueueMessagingTemplate(amazonSQSAsync);
    messagingTemplate.setMessageConverter(converter);

    return messagingTemplate;
}

package 命名空间已更新为使用 io.awspring。 运行应用程序时出现错误:

No qualifying bean of type 'com.amazonaws.services.sqs.AmazonSQSAsync' available

我的信念是 Spring 应该自动提供这个客户端。 我错过了什么吗?

在我的应用程序属性中,我定义了:

  • cloud.aws.credentials.access-key
  • cloud.aws.credentials.secret-key
  • cloud.aws.region.static

我缺少一个依赖项:

<dependency>
  <groupId>io.awspring.cloud</groupId>
  <artifactId>spring-cloud-aws-autoconfigure</artifactId>
  <version>${spring.cloud.aws}</version>
</dependency>

这是自动创建默认客户端所必需的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM