![](/img/trans.png)
[英]Neo4JTemplate Create And Get Id in One Query - Spring Data Neo4j 4.0.0.M1
[英]Spring Data Neo4j 4.x and sdn-university: Neo4jTemplate no autowire'ing
我正在將我們的應用程序從Spring Data Neo4j 3.x升級到Spring Data Neo4j 4.0.0.BUILD-SNAPSHOT,該應用程序在sdn-university
之后進行了建模。 當添加自動裝配的Neo4jTemplate實例時,在啟動時會引發以下異常:
...由以下原因引起:org.springframework.beans.factory.BeanCreationException:無法自動連線字段:私有org.springframework.data.neo4j.template.Neo4jTemplate school.service.UserServiceImpl.template; 嵌套的異常是org.springframework.beans.factory.NoSuchBeanDefinitionException:沒有找到類型為[org.springframework.data.neo4j.template.Neo4jTemplate]的合格Bean作為依賴項:至少應有1個可作為該依賴項的自動裝配候選的bean。 依賴注釋:在org.springframework的org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:571)的{@ org.springframework.beans.factory.annotation.Autowired(required = true)}。 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)上的beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)...更多21 ...
為了驗證結果,我采用了最新的sdn-university
現在也使用SDN4.x 4.0.0.BUILD-SNAPSHOT-來自https://github.com/neo4j-examples/sdn4-university並修改了StudentServiceImpl,使其包含自動裝配的Neo4jTemplate實例。 發出mvn clean spring-boot:run -U
, mvn clean spring-boot:run -U
我們的應用程序中看到的錯誤。
要成功使用Neo4jTemplate,需要將什么更改為sdn-university
?
這不SDN4工作的原因是因為Neo4jTemplate
及其接口, Neo4jOperations
,都與注釋@Repository
。 因此,Spring會創建Neo4jTemplate
類的代理,該類由於類型不匹配而無法正確自動連接。
最好的方法是針對Neo4jOperations
接口而不是Neo4jTemplate
類進行Neo4jTemplate
。 盡管最終我還是會個人支持針對接口進行編碼,但仍不確定是否可以在SDN4的最終版本中實現。
您可能還需要聲明Neo4jOperations
作為bean工廠方法的返回類型:
@Bean
public Neo4jOperations neo4jTemplate() throws Exception {
return new Neo4jTemplate(getSession());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.