Spring @Resource没有加载bean列表

时间:2014-07-18 23:13:46

标签: java spring

当我尝试加载资源时,它永远不会被加载,而是以null的形式返回。我的代码如下:

Controller.java

@Controller
@Path("/users")
public class UsersAPI {
    @Resource(name = "dataLoaderList")
    private List<DataLoader> dataLoaderList;
}

spring.xml

<context:component-scan base-package="com.my.package" />

<import resource="classpath:spring/commons.xml" />
<import resource="spring-dataloader.xml" />
<import resource="spring-security.xml" />

弹簧dataloader.xml

<bean id="dataLoaderList"
    class="org.springframework.beans.factory.config.ListFactoryBean">
    <property name="sourceList">
        <list>
            <ref bean="dataLoader1" />
            <ref bean="dataLoader2" />
            <ref bean="dataLoader3" />
        </list>
    </property>
</bean>

我能错过什么?

修改
我尝试在JUnit测试中加载资源,并且它有效。所以我不知道为什么它在我的控制器中不起作用。

的junit

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/spring.xml")
@ActiveProfiles("dev")
public class Test {

   @Resource(name = "dataLoaderList")
   private List<DataLoader> dataLoaderList;

}

1 个答案:

答案 0 :(得分:0)

我必须将@Controller注释更改为@Component并修复了我的错误。我不知道它为什么会起作用。