2017-03-29 63 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中包含的版本更新的版本,請確保它們基於相同的基礎架構版本。

相關問題