【发布时间】:2018-10-11 11:02:03
【问题描述】:
我正在尝试为我的 Spring Boot 应用程序实现一个后端 DynamoDB。但 AWS 最近更新了他们的 DynamoDB 开发工具包。因此,互联网上几乎所有可用的教程,例如http://www.baeldung.com/spring-data-dynamodb,都没有直接相关性。
我已经阅读了亚马逊关于 DynamoDB 类的 SDK 文档。具体来说,对象的实例化方式和端点/区域设置已被更改。过去,构建和设置端点应该是这样的:
@Bean
public AmazonDynamoDB amazonDynamoDB() {
AmazonDynamoDB amazonDynamoDB
= new AmazonDynamoDBClient(amazonAWSCredentials());
if (!StringUtils.isEmpty(amazonDynamoDBEndpoint)) {
amazonDynamoDB.setEndpoint(amazonDynamoDBEndpoint);
}
return amazonDynamoDB;
}
@Bean
public AWSCredentials amazonAWSCredentials() {
return new BasicAWSCredentials(
amazonAWSAccessKey, amazonAWSSecretKey);
}
但是,现在不推荐使用 setEndpoint() 方法,[AWS documentation][1] 指出我们应该通过构建器构造 DynamoDB 对象:
AmazonDynamoDBClient() 已弃用。利用 AmazonDynamoDBClientBuilder.defaultClient()
这个另一个StackOverflow post推荐使用这个策略来实例化数据库连接对象:
DynamoDB dynamoDB = new DynamoDB(AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration(new EndpointConfiguration("http://localhost:8000", "us-east-1")).build());
Table table = dynamoDB.getTable("Movies");
但我在 IntelliJ 上收到一个错误,即 DynamoDB 是抽象的,无法实例化。但我找不到任何关于要扩展的正确类的文档。
换句话说,我浏览了教程、SO 和 AWS 文档,但没有找到我认为创建客户端的正确方法。有人可以提供有效的实现吗?我专门尝试使用本地 DynamoDB(端点位于 localhost 端口 8000)设置客户端。
【问题讨论】:
标签: spring-boot amazon-dynamodb