繁体   English   中英

DynamoDB:提交配置数据源。 'url' 属性未指定且无法配置嵌入式数据源

DynamoDB: Filed to configure a DataSource. 'url' attribute is not specified and no embedded datasource could be configured

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如何正确使用 DynamoDB 与 Spring?

我尝试遵循许多教程,但总是遇到同样的错误。

例如我的[baeldung教程][1]的实现:

  • 应用程序属性:
#AWS-creds
amazon.dynamodb.endpoint=https://dynamodb.us-east-1.amazonaws.com
amazon.aws.accesskey=
amazon.aws.secretkey=

spring.jpa.hibernate.ddl-auto=create
spring.main.allow-bean-definition-overriding=true
  • 配置:

@Configuration
@EnableDynamoDBRepositories
        (basePackages = "com.hrzc.demo.repository")
public class DynamoDBConfig {

    @Value("${amazon.dynamodb.endpoint}")
    private String amazonDynamoDBEndpoint;

    @Value("${amazon.aws.accesskey}")
    private String amazonAWSAccessKey;

    @Value("${amazon.aws.secretkey}")
    private String amazonAWSSecretKey;

    @Bean
    public AmazonDynamoDB amazonDynamoDB() {
        AmazonDynamoDB amazonDynamoDB
                = new AmazonDynamoDBClient(amazonAWSCredentials());

        if (!StringUtils.isEmpty(amazonDynamoDBEndpoint)) {
            amazonDynamoDB.setEndpoint(amazonDynamoDBEndpoint);
        }

        return amazonDynamoDB;
    }

    @Bean
    public AWSCredentials amazonAWSCredentials() {
        return new BasicAWSCredentials(
                amazonAWSAccessKey, amazonAWSSecretKey);
    }
}
  • 实体:

@DynamoDBTable(tableName = "Url")
public class Url {

    private int id;

    private String longUrl;

    @DynamoDBAttribute
    @DynamoDBRangeKey
    public String getLongUrl() {
        return longUrl;
    }

    public void setLongUrl(String longUrl) {
        this.longUrl = longUrl;
    }

    @DynamoDBHashKey
    @DynamoDBAutoGeneratedKey
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

  • 存储库:
@EnableScan
public interface UrlRepository extends CrudRepository<Url, Long> {
}

pom文件不等于教程中的pom ,但我希望这不是原因,因为我无法使用dependencyManagement启动项目 - 错误听起来像是An attempt was made to call a method that does not exist. - 我发现了删除spring-boot-data overriding [here][2] 的建议。

  • 起居室:
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hrzc</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>linkshrtnr</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.7.4</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-dynamodb</artifactId>
            <version>1.11.64</version>
        </dependency>
        <dependency>
            <groupId>com.github.derjust</groupId>
            <artifactId>spring-data-dynamodb</artifactId>
            <version>5.1.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

  • 我通过aws-cli创建了Url表:
> aws dynamodb describe-table --table-name Url

{
    "Table": {
        "AttributeDefinitions": [
            {
                "AttributeName": "id",
                "AttributeType": "N"
            },
            {
                "AttributeName": "longUrl",
                "AttributeType": "S"
            }
        ],
        "TableName": "Url",
        "KeySchema": [
            {
                "AttributeName": "id",
                "KeyType": "HASH"
            },
            {
                "AttributeName": "longUrl",
                "KeyType": "RANGE"
            }
        ],
        "TableStatus": "ACTIVE",
        "CreationDateTime": "2022-09-25T22:40:39.385000+03:00",
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "ReadCapacityUnits": 1,
            "WriteCapacityUnits": 1
        },
        "TableSizeBytes": 0,
        "ItemCount": 0,
        "TableArn": "arn:aws:dynamodb:us-east-1:393546347656:table/Url",
        "TableId": "33f8baed-4d6c-4787-845d-1df7d0749cea"
    }
}

那么,如何正确使用dynamoDB呢?



  [1]: https://www.baeldung.com/spring-data-dynamodb
  [2]: https://stackoverflow.com/questions/64171751/spring-boot-refuses-to-start-problem-with-abstractrepositoryconfigurationsource
问题暂未有回复.您可以查看右边的相关问题.
2 错误:无法配置数据源:未指定“url”属性并且无法配置嵌入式数据源

我已经看过这个主题的其他相关帖子,除非我遗漏了什么,否则没有人能解释我的问题。 因此,我正在与其他 2 位开发人员一起开发 spring 启动 web 应用程序。 他们能够在本地运行应用程序、生成战争文件并毫无问题地连接到本地数据库。 但是,由于某种原因,当我运行 war 文件时出现以下错误报告,我 ...

8 无法配置数据源:未指定“url”属性,并且无法配置嵌入式数据源。 配SQL服务器

我想知道在尝试执行 springboot 应用程序时如何得到这个错误。 它看起来可以在我的本地机器上运行,但是当我尝试移动到 UAT 服务器时,它会返回此错误。 我已经更新了应该在 UAT 机器上工作的用户名和密码。 我不知道它是否来自无效的 url 或其他错误设置。 应用程序属性: pom.xm ...

10 无法配置数据源:无法配置嵌入式数据源

试图运行我的 Spring 引导应用程序我收到以下错误: 经过一番研究,我将最后一行添加到我的 application.properties 文件中,如下所示: 然后给了我错误: 我的 pom.xml 看起来像这样: 关于下一步尝试什么的任何建议? 感谢大家! ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM