SpringBoot集成Dynamo(1)集成方法

一、集成步骤

1、aws凭证配置

见aws专栏。

2、pom依赖

有AWS SDK for Java v1和AWS SDK for Java v2两种方法,v1和v2可以同时使用。

(1)AWS SDK v1 的所有依赖包使用的 groupIdcom.amazonaws

(2)AWS SDK v2 的所有依赖包使用的 groupIdsoftware.amazon.awssdk

<dependencies>
    <!-- AWS SDK for DynamoDB -->
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>dynamodb</artifactId>
        <version>2.20.44</version>  <!-- 请使用最新的版本 -->
    </dependency>

    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Starter Data JPA (如果需要数据库支持的话) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- Spring Data DynamoDB (可选, 如果需要集成Spring Data) -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>spring-data-dynamodb</artifactId>
        <version>5.2.5</version> <!-- 这只是一个示例版本 -->
    </dependency>
    
    <!-- AWS Java SDK (如果需要使用其他 AWS 服务) -->
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>aws-java-sdk-core</artifactId>
        <version>2.20.44</version>
    </dependency>
</dependencies>
3、配置dynamo客户端

创建一个 @Configuration 类来配置 DynamoDB 客户端dynamoDbClient和DynamoDbEnhancedClient,通过aws凭证连接到aws。

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DynamoDBConfig {

    @Bean
    public DynamoDbClient dynamoDbClient() {
        return DynamoDbClient.builder()
                .region(Region.US_WEST_2)  // 请根据你的需求更改区域
                .credentialsProvider(DefaultCredentialsProvider.create()) // 默认凭证
                .build();
    }

    @Bean("dynamoDbEnhancedClient")
    public DynamoDbEnhancedClient dynamoDbEnhancedClient() { // enhanced version
        DynamoDbClient dynamoDbClient = dynamoDbClient();
        return DynamoDbEnhancedClient.builder().dynamoDbClient(dynamoDbClient).build();
    }
}
4、定义 DynamoDB 表实体类

定义一个实体类,映射到 DynamoDB 中的表,可以使用Dynamo的一些注解

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@DynamoDbBean
@DynamoDBTable(tableName = "Users")
public class User {

    private String userId;
    private String name;
    private String email;

    @DynamoDBHashKey(attributeName = "userId")
    public String getUserId() {
        return userId;
    }


    @DynamoDBAttribute(attributeName = "name")
    public String getName() {
        return name;
    }


    @DynamoDBAttribute(attributeName = "email")
    public String getEmail() {
        return email;
    }
}
5、创建DynamoDB Repository

可以使用 Spring Data DynamoDB 提供的 CrudRepositoryPagingAndSortingRepository 来进行数据的操作。如果使用的是 Spring Data DynamoDB,可以像对待传统的 JPA Repository 一样进行操作。

import org.socialsignin.spring.data.dynamodb.repository.EnableScan;
import org.springframework.data.repository.CrudRepository;

@EnableScan  // 如果你想执行扫描查询
public interface UserRepository extends CrudRepository<User, String> {
    // 你可以在这里添加自定义查询方法
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值