我尝试使用Spring Data Neo4j编写一个webapp。
我有一个存储库:
public interface UserRepository extends GraphRepository<Neo4jUser> {}
applicationcontext.xml:
...
<context:component-scan base-package="de.wilke.test.neo4j" >
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- REST Connection to Neo4j server -->
<bean id="restGraphDatabase"
class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg value="http://localhost:7474/db/data/" />
</bean>
<bean id="myservice" class="de.wilke.test.neo4j.Neo4jResource">
</bean>
<!-- Neo4j configuration (template) -->
<neo4j:config graphDatabaseService="restGraphDatabase" />
<!-- Package w/ automagic repositories -->
<neo4j:repositories base-package="de.wilke.test.repository" />
我的Neo4jResource:
@Controller
public class Neo4jResource {
@Autowired
public static UserRepository repo;
...
现在不能在Controller中使用UserRepository,因为它是null ...
错误在哪里?
答案 0 :(得分:0)
@Autowired
不适用于static
字段。
从设计的角度来看,创建此字段static
也不是一个好主意。
答案 1 :(得分:0)
我能想到的几件事情:
<neo4j:repositories base-package=".."/> is not correct
applicationContext
且repo
无法正确实例化先检查您的包裹。另外,您的主要应用程序中是否包含以下内容?
ConfigurableApplicationContext context;
context = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
Neo4jResource myBean = context.getBean(Neo4jResource.class);
myBean.functionThatUsesTheRepo();
希望这有助于......