2017-03-29 62 views
-1

类型的合格bean应用程序依赖于一些弹簧数据项目,包括Neo4j,Solr和Jpa。我最近必须将spring-data-solr更新到Snapshot-3.0.0.M1(以消除另一个依赖冲突)。我认为传递依赖之一是与neo4j产生冲突。如果我从项目中删除spring-neo4j,错误(见下文)似乎消失。没有类型'java.lang.Class <org.springframework.data.repository.Repository <?, ?>>'

我附上了一个重现此问题的示例项目。从here

运行测试类AccountServiceJpaTester.testSaveAccount()

下载示例项目产生的原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:无型的排位豆 '的java.lang.Class>' 可用:预期至少有1个符合自动线候选资格的bean。依赖注解:{} 在org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1456) 在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1087) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1049) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:833) at org.springframework.beans .factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:740) ... 60更多

回答

1

Spring data proj所有这些都基于共同的基础设施(春季资料共享)。 如果您在spring数据系列中使用了多个项目(在您的案例中是neo4j,solr,jpa),您必须确保它们都基于基础架构的通用版本。

对于您的情况,spring-data-solr 3.0.0 M1基于spring-data-commons 2.x,而JPA和Neo4j使用spring-data-commons 1.x

管理这一点的好方法是使用弹簧数据BOM。这在spring data homepage解释。 To manage the portfolio, a BOM (Bill of Materials - see this example) is published with a curated set of dependencies on the individual project 如果您需要更新到比BOM中包含的版本更新的版本,请确保它们基于相同的基础架构版本。

相关问题