当我使用当前最新版本的Spring-data dynerdb(v.1.0(运行Spring Boot 2.0.0应用程序时,我在运行时会收到以下错误。
org.springframework.beans.factory.BeanCreationException:创建名为"dynamoDB DynamoDBMapper"的bean时出错:bean实例化失败;嵌套异常为org.springframework.beans.BeanInstanceException:未能实例化[org.socialignin.spring.data.dynoldedb.repository.config.DynamoDBMapperFactory]:找不到默认构造函数;嵌套异常为java.lang.NoSuchMethodException:org.socialignin.spring.data.dynoldedb.repository.config.DynamoDBMapperFactory。((
我尝试过以下方法:
- 将DynamoDBMapperFactory bean添加到我的配置类并使其成为主要
- AWSCredentials、DynamoDBMapperConfig、DynamoDB Mapper和AmazonDynamoDB bean配置的不同组合(例如,删除它们,使它们成为主要配置,为它们命名并明确引用它们(
- 传递给EnableDynamoDBRepositorys注释的配置的不同组合
原来spring data dynamo v5.1.0与我的spring Boot(2.0.0(版本不兼容
将spring数据生成器库降级到v5.0.4解决了我的问题。
您可以使用@EnableDynamoDBRepositories
的dynamoDBMapperConfigRef
选项来解决此问题。添加下面的代码片段,
@EnableDynamoDBRepositories(dynamoDBMapperConfigRef = "dynamoDBMapperConfig")
@Bean
public DynamoDBMapperConfig dynamoDBMapperConfig() {
return
DynamoDBMapperConfig.builder()
.withTableNameOverride(withTableNameReplacement(tableName))
.build();
}
这甚至适用于最新版本的弹簧靴和弹簧数据发电机数据库。
Github中出现了一个Open问题。您也可以查看此链接,DynamoDBMapperConfig的第二个实例正在创建