我想爲我的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