我使用IDEA IntelliJ 12.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/
答案 0 :(得分:8)
这在使用Spring Data bean的IntelliJ中发生了很多。 IntelliJ没有很好地解析Spring Data的命名空间配置中的实例。作为一个示例(除了你的),IntelliJ将无法正确验证扩展Spring Data @Autowired
的{{1}}或@Inject
ed类。正如您所注意到的,它不会伤害您的应用程序,但在开发过程中它非常烦人。以下是如何抑制“错误”:
MongoRepository
您可以通过单击红色灯泡(悬停在红色下划线元素上时出现错误指示符)选择“检查'Bean类选项自动装配'”然后最后“抑制字段”来完成相同的操作。或者,如果要为整个班级禁止它,请选择“抑制课程。”