spring数据mongodb自定义接口冲突BeanDefinitionException
按照手册,我创建了存储库和实现类。然而,当我启动我的应用程序时,spring引导失败 Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'mockTestRepositoryImpl' for bean class [com.foo.testapp.mongo.repository.impl.MockTestRepositoryImpl] conflicts with existing, non-compatible bean definition of same name and class [com.foo.testapp.mongo.repository.impl.MockTestRepositoryImpl] 自定义接口:spring数据mongodb自定义接口冲突BeanDefinitionException,spring,spring-data,spring-data-mongodb,Spring,Spring Data,Spring Data Mongodb,按照手册,我创建了存储库和实现类。然而,当我启动我的应用程序时,spring引导失败 Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'mockTestRepositoryImpl' for bean class [com.foo.testapp.mongo.repository.impl.MockTestRep
包com.foo.testapp.mongo.repository
公共接口MockTestRepositoryCustom{
MockTest findAndModify(查询查询、更新、FindAndModifyOptions)
布尔存在(查询);
}
Spring数据存储库:
包com.foo.testapp.mongo.repository
公共接口MockTestRepository扩展了MongoRepository、MockTestRepositoryCustom{
列表findByDeleted(布尔删除);
MockTest findByIdAndDeleted(字符串id,布尔删除);
@查询(value=“{'deleted':?0}”,fields=“{'name':1}”)
列出findAllBasicInfo(布尔删除);
}
问题是您已经用@组件注释了MockTestRepositoryImpl
您需要完全删除@组件
(正如您在手册中看到的,没有这样的注释-但所有Spring功能都正常工作) 请尝试从MockTestRepositoryImpl
中删除@Component
,并告诉我没有@Component时会发生什么。谢谢。将此作为答案发布。我会接受的。但我想知道为什么spring数据和spring上下文扫描不能同步工作并创建副本。我添加了它作为答案。这是你提出的一个好问题!起初,我认为Spring应该能够忽略注释,但我敢打赌有一些深层Spring内部的东西阻止了它的易于实现