8

IDEAIntelliJ12.0.2を使用しています。

私のapplication-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/

4

1 に答える 1

9

これは、SpringDataBeanを使用するIntelliJでよく発生します。IntelliJは、SpringDataの名前空間構成からインスタンスを適切に解析しません。例として(あなたのものに加えて)、IntelliJはSpringDataを拡張するoredクラスを適切に検証しませ@Autowiredん。お気づきのように、アプリを傷つけることはありませんが、開発中はかなり面倒です。「エラー」を抑制する方法は次のとおりです。@InjectMongoRepository

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

赤い電球(赤い下線付きの要素にカーソルを合わせるとエラーインジケーター)をクリックし、[検査] [Beanクラスの自動配線]オプション]を選択してから、最後に[フィールドの抑制]を選択することで、同じことができます。または、クラス全体で抑制したい場合は、「クラスで抑制」を選択します。

于 2013-10-07T18:38:09.390 に答える