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 - 缺少键

C# dynamodb 错误:查询条件缺少键架构元素:主键

用于查询 dynamodb 的 boto3 资源:查询条件缺少关键架构元素

查询条件缺少关键架构元素:验证错误

keycloak 客户端协议映射器(脚本映射器)将请求标头添加到令牌中

NoSQL:从表 DynamoDB/Azure 表存储中获取最新值