一、集成步骤
1、aws凭证配置
见aws专栏。
2、pom依赖
有AWS SDK for Java v1和AWS SDK for Java v2两种方法,v1和v2可以同时使用。
(1)AWS SDK v1 的所有依赖包使用的 groupId
是 com.amazonaws
。
(2)AWS SDK v2 的所有依赖包使用的 groupId
是 software.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 提供的 CrudRepository
或 PagingAndSortingRepository
来进行数据的操作。如果使用的是 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> {
// 你可以在这里添加自定义查询方法
}