You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot整合DynamoDB报UnsatisfiedDependencyException错误如何解决

问题解决步骤

核心报错原因是Spring无法读取到amazon.access.key配置项,按以下顺序排查修复:

1. 修复application.yml格式错误

YAML语法要求键与值之间必须保留空格,你当前的配置冒号后直接跟值,Spring无法正常解析,修改为正确格式:

amazon:
  access:
    key: AKIAQQABW4A # 冒号后加空格
    secret-key: AKIABWCF6E24A # 冒号后加空格
  region: us-east-1 # 补全你实际使用的AWS区域,不能为空
  end-point:
    url: dynamodb.us-east-1.amazonaws.com # 本地测试的话可以填http://localhost:8000
server:
  port: 9001 # 冒号后加空格

2. 检查配置文件位置

确认application.yml文件放在项目src/main/resources根目录下,文件名拼写完全正确,没有多后缀或者大小写错误。

3. 修复DynamoDB配置类逻辑

你当前配置类中注入了区域、端点配置但没有实际使用,会导致后续DynamoDB客户端连接异常,修改amazonDynamoDBConfig方法:

public AmazonDynamoDB amazonDynamoDBConfig(){
    return AmazonDynamoDBClientBuilder.standard()
            .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(awsAccessKey,awsSecretKey)))
            .withRegion(awsRegion) // 新增:设置AWS区域
            .withEndpointConfiguration(new AmazonDynamoDB.EndpointConfiguration(awsDynamoDBEndPoint, awsRegion)) // 新增:配置端点
            .build();
}

4. 修复后续运行会遇到的隐含问题

4.1 数据模型主键匹配错误

你在IssueRepository的getOneIssue方法中调用mapper.load时传入了IssueId和IssueName作为主键,但IssueAssignment类中配置的RangeKey是AssigneName,会导致查询永远返回空,需要调整主键配置或者查询参数。

4.2 Controller层多@RequestBody错误

PutMapping标注的方法中使用了3个@RequestBody注解,Spring MVC规定单个请求只能有一个请求体,需要把参数改为@RequestParam或者封装为单个DTO对象接收。

内容的提问来源于stack exchange,提问作者Ankur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:24:02