我想为我的Spring Boot应用程序实现后端DynamoDB。但是AWS最近更新了他们针对DynamoDB的SDK。因此,互联网上几乎所有的教程都不直接相关,如http://www.baeldung.com/spring-data-dynamodb。DynamoDB for Spring Boot的实现
我已阅读Amazon的有关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处的端点)设置客户端。
Hi @Yo chen我有同样的问题。你如何实现这个Bean? – Victor