增强的 dynamo DB 和使用 Dynamo Local 的集成测试
2022/11/4 23:23:58
本文主要是介绍增强的 dynamo DB 和使用 Dynamo Local 的集成测试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
先决条件
-
爪哇> 11
-
格拉德尔 > 5
在 Gradle 中设置增强型客户端
要在 Gradle 中设置增强型客户端,需要添加以下依赖项
implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.11.434' implementation 'software.amazon.awssdk:dynamodb:2.17.28' implementation 'software.amazon.awssdk:dynamodb-enhanced:2.17.28'
设置DynamoDb Local
AWS 文档提供了设置 maven build 的步骤,但 AWS 不提供 Gradle 设置,并且此库不可用中央 maven 存储库,因此用户需要设置 AWSmaven存储库以设置 DynamoDb Local
repositories { maven { name url "https://s3-us-west-2.amazonaws.com/dynamodb-local/release" } }
以下依赖项会将 DynamoDbLocal 添加到 gradle 项目中
testImplementation group: 'com.amazonaws', name: 'DynamoDBLocal', version: '1.11.119'
您可以在https://github.com/redskap/aws-dynamodb-java-example-local-testing/blob/master/README.md 中找到有关设置的更多信息。作为测试安装程序的一部分,复制 AwsDynamoDbLocalTestUtils 并在 JUnit Test 类的设置函数期间调用AwsDynamoDbLocalTestUtils#initSqLite()。
DynamoDb Domain POJO
此类是 Dynamo DB 模式的 POJO 表示,我使用lombok来避免 Getter 和 Setter 方法的锅炉电镀,@DynamoDbBean表示 dynamo db 结构,@DynamoDbPartitionKey表示主键 id
@Data @DynamoDbBean public class Student { private String studentId; private String studentName; private String department; @DynamoDbPartitionKey @DynamoDbAttribute("studentId") public String getStudentId() { return studentId; } }
DynamoDb 服务实施
这个类有完整的DAO实现
-
创建表
-
基于分区键插入/更新项目
-
按 ID 获取项目
DynamoDBService.java
设置 JUnit 测试类
在启动期间,JUnit 将启动本地 dynamo 数据库实例,以下代码演示如何建立与本地实例的 DynamoClient 连接
private static final String TABLE\_NAME = "Student"; private static DynamoDBProxyServer server; private static final String port = "8000"; private static final String uri = "http://localhost:"+port; @BeforeEach public void setUpTest() throws Exception { AwsDynamoDbLocalTestUtils.initSqLite(); server = ServerRunner.createServerFromCommandLineArgs( new String\[\]{"-inMemory", "-port", port}); server.start(); client=DynamoDbClient.builder() .endpointOverride(URI.create(uri)) .region(Region.AF\_SOUTH\_1) .credentialsProvider(StaticCredentialsProvider.create( AwsBasicCredentials.create("fakeMyKeyId","fakeSecretAccessKey"))) .build(); }
这篇关于增强的 dynamo DB 和使用 Dynamo Local 的集成测试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27文件掩码什么意思?-icode9专业技术文章分享
- 2024-12-27如何使用循环来处理多个订单的退款请求,代码怎么写?-icode9专业技术文章分享
- 2024-12-27VSCode 在编辑时切换到另一个文件后再切回来如何保持在原来的位置?-icode9专业技术文章分享
- 2024-12-27Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品 审核中
- 2024-12-27TypeScript面试真题解析与实战指南
- 2024-12-27TypeScript大厂面试真题详解与解析
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解