Dynamodb客户端中缺少DynamoDB映射器类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dynamodb客户端中缺少DynamoDB映射器类相关的知识,希望对你有一定的参考价值。
我想通过在我的项目中声明以下工件来使用dynamodb客户端
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodb</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodbmapper-v1</artifactId>
<version>1.0.0</version>
</dependency>
上述两个罐子都不包含与dynamodb相关的类。
但是如果看到使用下面的GAV下载的工件,那么我会看到提取的jar中的类。
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
组com.amazonaws和software.amazon.awssdk之间有什么区别?哪里有区别?为什么第一个GAV中缺少映射器。
亚马逊在第一件神器中提到了以下内容
<artifactId>dynamodbmapper-v1</artifactId>
<name>AWS Java SDK :: Test :: Amazon DynamoDB Mapper v1</name>
<description>DynamoDB Mapper largely unchanged from v1. The v1 Mapper is kept for testing purposes only. All classes are in the test directories to prevent use in application code.</description>
<url>https://aws.amazon.com/sdkforjava</url>
答案
就个人而言,我不喜欢亚马逊的文件 - 我不确定这是不是你的情况,但对我而言,大多数时候这些材料已经过时了。
我正在使用aws客户端和Lavelle社区发电机库通过注释/ querydsl对DynamoDB进行一些查询。
下面是我的pom.xml,用于spring-boot / spring-data / dynamodb / swagger微服务。我希望它有所帮助。
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sandbox-aws-DynamoDB</groupId>
<artifactId>sandbox-aws-DynamoDB</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sandbox-aws-DynamoDB</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-boot.version>1.5.9.RELEASE</spring-boot.version>
<!--
Spring-boot 1.5.9.RELEASE DOES NOT WORK WITH spring-data-dynamodb 5.0.0
missing org.springframework.data.querydsl.QuerydslUtils
-->
<spring-data-dynamodb>4.5.0</spring-data-dynamodb>
<aws-java-sdk-dynamodb>1.11.136</aws-java-sdk-dynamodb>
<log4j.version>1.3.8.RELEASE</log4j.version>
<swagger2.version>2.7.0</swagger2.version>
<swagger.ui.version>2.7.0</swagger.ui.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>1.5.5</version>
</dependency>
<!-- AWS DynamoDB -->
<dependency>
<groupId>com.github.derjust</groupId>
<artifactId>spring-data-dynamodb</artifactId>
<version>${spring-data-dynamodb}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<version>${aws-java-sdk-dynamodb}</version>
</dependency>
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.ui.version}</version>
</dependency>
<!-- Commons -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
</dependencies>
<build>
<finalName>sandbox-aws-dynamodb</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
<failOnError>false</failOnError>
<doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
<docletPath>/home/jorge/project/umlgraph-5.6.6.jar</docletPath>
<docletArtifact>
<groupId>org.umlgraph</groupId>
<artifactId>doclet</artifactId>
<version>5.1</version>
</docletArtifact>
<additionalparam>-views</additionalparam>
<useStandardDocletOptions>true</useStandardDocletOptions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.9.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
以上是关于Dynamodb客户端中缺少DynamoDB映射器类的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node 从 Lambda 查询 Dynamodb - 缺少键
用于查询 dynamodb 的 boto3 资源:查询条件缺少关键架构元素