Spring在启动时没有实例化bean
问题描述:
我遇到以下问题。我的应用程序不会在启动时创建我的服务,当我尝试在使用@Autowired
注入它们之后在我的Maven测试中使用它们时,最终得到了NullPointerException
。Spring在启动时没有实例化bean
我不明白它来自哪里。我做了一些研究,但我仍然不明白为什么它不起作用。
这里是课堂,我的自动装配Autowired administrationActionService
为空:
public class AdministrationActionTests extends EntityTests {
@Autowired
AdministrationActionService administrationActionService;
@Test
public void equalsTests() {
administrationActionService.getExample();
[...]
类:
package com.bloombooking.services;
@org.springframework.stereotype.Service
public class AdministrationActionService extends ServiceEntity{
@Autowired private AdministrationActionDao administrationActionDao;
[...]
而且我ApplicationContext.xml
。我把它放在src/ApplicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.bloombooking.services, com.bloombooking.dao"/>
</beans>
我真的不知道我可能做错了。有人能帮我吗?谢谢!
答
为了使它工作,你必须做如下修改:
- 添加
@RunWith(SpringJUnit4ClassRunner.class)
到您的类。 - 添加
@ContextConfiguration("path_to_you_spring_beans.xml")
,以便类变为:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("path_to_you_spring_beans.xml")
AdministrationActionTests {
}
如何'AdministrationActionTests'知道应用程序上下文文件是否存在? “EntityTests”的外观是什么? – Reimeus
唔...你是什么意思?我需要在AdministrationActionTests中建立一个到applicationContext文件的链接? EntityTests是空的。 – Antoine