2013-01-18 75 views
7

我使用IDEA IntelliJ 12.0.2。無法自動裝配。沒有發現Neo4jTemplate類型的豆

我的應用程序的context.xml是:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:neo4j="http://www.springframework.org/schema/data/neo4j" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j.xsd"> 

    <neo4j:config storeDirectory="../embeddedNeo4j"/> 

    <context:spring-configured/> 

    <context:annotation-config/> 
    <context:component-scan base-package="models"/> 

</beans> 

我的測試類是:

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.data.neo4j.support.Neo4jTemplate; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 
import org.springframework.transaction.annotation.Transactional; 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration({"/application-context.xml"}) 
@Transactional 
public class MyTest { 

    @Autowired 
    Neo4jTemplate template; //=> Could not autowire.No beans of Neo4jTemplate type found 

    //my tests here 
} 

我錯過了一些配置?

這似乎是一個老問題的IntelliJ:http://www.markvandenbergh.com/archives/260/autowiring-spring-bean-in-intellij/

+0

從應用程序無法正常工作或僅僅是IDE錯誤,但應用程序按預期工作的問題來看,並不清楚。 –

+0

@Andrey Polunin事實上,應用程序編譯,但IntelliJ警告這個「錯誤」。 – Mik378

回答

7

這種情況發生了很多的IntelliJ與Spring數據豆類。 IntelliJ不會從Spring Data的命名空間配置中很好地解析出實例。作爲一個例子(除了你的),IntelliJ不會正確地驗證擴展Spring Data MongoRepository@Autowired@Inject ed類。正如你已經注意到的那樣,它不會傷害你的應用程序,但是在開發過程中它很煩人。這裏是你如何能抑制「錯誤」:

@SuppressWarnings("SpringJavaAutowiringInspection") 
@Autowired 
Neo4jTemplate template; 

您可以通過點擊紅色燈泡(盤旋在紅色下劃線的元素時,誤差指標)完成同樣的選擇「檢查‘自動裝配Bean類’選項「,然後最後是」壓制領域「。或者,如果您想爲整個班級壓縮它,請選擇「爲班級取消」。

相關問題