标签: aws-java-sdk-dynamodb

在 AWS Java SDK 2.x 中将 DynamoDB Map<String, AttributeValue> 解组为文档样式 JSON

使用 Java 将 DynamoDB JSON 转换为标准 JSON问题的答案将于 2022 年过时。

问题是这两个导入都不再起作用:

import com.amazonaws.services.dynamodbv2.document.internal.InternalUtils;

import com.amazonaws.services.dynamodbv2.document.ItemUtils;

会发生什么:导入失败。

您还可以在文档中进行验证,此处:https://sdk.amazonaws.com/java/api/latest/index.html ?software/amazon/awssdk/services/dynamodb/package-summary.html

问题是,在 SDK 2.x 中用什么类来替代这两个类呢?

amazon-dynamodb aws-sdk aws-java-sdk-2.x aws-java-sdk-dynamodb

10
推荐指数
1
解决办法
2978
查看次数

CRUD 存储库 bean 未找到异常

我有一个连接到 AWS DynamoDB 的应用程序。我正在尝试使用 Jedis 在此应用程序中实现 Redis 连接。

但是,就在我添加此依赖项之后 -

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我收到这个错误 -

***************************
APPLICATION FAILED TO START
***************************

Description:

Field userInfoRepository in org.csulb.md.service.DBService required a bean of type 'org.csulb.md.repo.UserInfoRepository' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'org.csulb.md.repo.UserInfoRepository' in your configuration.
Run Code Online (Sandbox Code Playgroud)

UserInfoRepository 实现了 CrudRepository。

我不确定我错过了什么。简而言之,向此代码添加 spring-boot-starter-data-redis 依赖项会出现此错误。如果没有这种依赖性,代码就可以正常工作。

下面是我的其余代码。

主应用程序.java

package org.csulb.md;

@SpringBootApplication
public class MainApp {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class, …
Run Code Online (Sandbox Code Playgroud)

jedis spring-data spring-data-redis spring-boot aws-java-sdk-dynamodb

5
推荐指数
1
解决办法
2148
查看次数

DynamoDBMapper 和 DynamoDB 表的表之间有什么区别

在 AWS DynamoDB 中,有两个选项可用于对表执行 CRUD 操作。

DynamoDBMapper:. com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;

    AmazonDynamoDB dbClient = AmazonDynamoDBAsyncClientBuilder.standard().withCredentials(creds)
            .withRegion("us-east-1").build();
    // creds is AWSCredentialsProvider

    DynamoDBMapper mapper = new DynamoDBMapper(dbClient);
    mapper.save(item);
Run Code Online (Sandbox Code Playgroud)

桌子: com.amazonaws.services.dynamodbv2.document.Table;

static DynamoDB dynamoDB =new DynamoDB(dbClient);
Table table = dynamoDB.getTable("TABLE_NAME");
Item item =new Item().withPrimaryKey("","")
        .withString("":, "");
table.putItem(item);
Run Code Online (Sandbox Code Playgroud)

两者似乎都执行相同的操作。

DynamoDBMapperTable之上的一层吗?如果是的话,使用这些的区别是什么?

amazon-web-services amazon-dynamodb aws-java-sdk-2.x aws-java-sdk-dynamodb dynamodb-mapper

5
推荐指数
1
解决办法
9470
查看次数

如何使用 @DynamoDbTable 注释动态传递 aws dynamodb 表名称

我创建了一个 java 服务来从 dynamodb 获取详细信息,它工作正常,但我的挑战是我将表名硬编码到类文件@DynamoDbTable注释中,以便在不同的环境中工作,我觉得这不是正确的方法。我在下面给出了我的代码,有人可以帮助我解决这个问题。

代码示例

public class DynamodbService {

    private DynamoDB client;
    private DynamoDBMapper objectMapper;

    /**
     * 
     * @param client
     * @param objectMapper
     */
    @Autowired
    public DynamodbService(DynamoDB client, DynamoDBMapper objectMapper) {
        this.client = client;
        this.objectMapper = objectMapper;
    }


    public List<Dynamodb> findAll() throws Exception {
        DynamoDBMapperConfig mapperConfig = new DynamoDBMapperConfig.Builder()
                .withTableNameOverride(DynamoDBMapperConfig.TableNameOverride.withTableNameReplacement(""))
                .build();
        DynamoDBMapper mapper = new DynamoDBMapper(client, mapperConfig);

        DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();

        List<Dynamodb> scanResult = objectMapper.scan(Dynamodb.class, scanExpression);
        return scanResult;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的 DynamoDB 配置

@Configuration
public class …
Run Code Online (Sandbox Code Playgroud)

java amazon-dynamodb spring-boot aws-java-sdk-2.x aws-java-sdk-dynamodb

2
推荐指数
1
解决办法
7553
查看次数