2013-01-18 11 views
7

Uso IDEA IntelliJ 12.0.2.Impossibile eseguire l'autowire. Nessun fagiolo di tipo Neo4jTemplate trovato

La mia domanda-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> 

La mia classe di test è:

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 
} 

Ho perso un po 'di configurazione?

sembra essere un vecchio problema con IntelliJ: http://www.markvandenbergh.com/archives/260/autowiring-spring-bean-in-intellij/

+0

Non è chiaro dalla domanda se l'applicazione non funziona o si tratta semplicemente di un errore IDE, ma l'applicazione funziona come previsto. –

+0

@Andrey Polunin In effetti, l'app compila ma IntelliJ mette in guardia su questo "errore". – Mik378

risposta

7

Questo succede molto in IntelliJ con i fagioli primavera dati. IntelliJ non analizza troppo bene le istanze dalle configurazioni dello spazio dei nomi di Spring Data. Ad esempio (oltre al tuo), IntelliJ non convaliderà correttamente una classe @Autowired o @Inject che estende i dati di primavera MongoRepository. Come hai notato, non fa male alla tua app, ma è piuttosto fastidiosa durante lo sviluppo. Ecco come è possibile eliminare l ' "errore":

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

È possibile ottenere lo stesso cliccando la lampadina rossa (indicatore di errore quando si passa sopra l'elemento rosso-sottolineata,) selezionando " 'autowiring per Bean Class' ispezione opzioni "e infine" Sopprimi per campo ". Oppure, se vuoi sopprimerlo per tutta la tua classe, seleziona "Sopprimi per classe".

Problemi correlati