DynamoDBMapper 是否适用于 DAX?

Does DynamoDBMapper work with DAX?

我想知道DynamoDBMapper是否可以用来查询DAX?我在开发人员指南中找不到任何关于使用 DynamoDBMapper 和 DAX 的提及。

好像可以在构造DynamoDBMapper实例时传入DAX客户端,但由于我没有提供DAX,所以我无法真正测试它是否有效。

是的,从 AmazonDaxClientBuilder.build() 返回的实例可以传递给 DynamoDBMapper 构造函数,它应该可以工作。如果不是,那是一个错误,我们会修复它。

我没有看到任何 follow-up 这个问题,但经验调查表明批准的答案可能不正确。 DynamoDBMapper 上似乎没有任何接受 AmazonDax 实例的构造函数(从 AWS SDK 1.11.283 开始)。

参见 DynamoDBMapper 构造函数: https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html#constructor.summary

参见 AmazonDax 的定义(return 类型 AmazonDaxClientBuilder::build): https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dax/AmazonDax.html

请注意 AmazonDax 似乎不是 AmazonDynamoDB

的扩展

要在 Spring Boot 2.5 中将 DynamoDb Accelerator (DAX) 与 DynamoDbMapper 一起使用:

  @Bean("amazonDaxDynamoDB")
  public AmazonDynamoDB amazonDaxDynamoDB() {
    return AmazonDaxAsyncClientBuilder.standard().build();
  }

  @Bean("amazonDaxDynamoDbMapper")
  public DynamoDBMapper amazonDaxDynamoDbMapper(
      @Qualifier("amazonDaxDynamoDB") final AmazonDynamoDB amazonDynamoDB) {
    return new DynamoDBMapper(amazonDynamoDB, DynamoDBMapperConfig.DEFAULT);
  }