1

我正在尝试像这样测试 Autowire 选项:

@ContextConfiguration(locations = { "classpath:applnContext.xml" })
public class Foo {
    @Autowired
    private Bar bar;

    public Bar getBar() {
        return bar;
    }

    public void setBar(final Bar bar) {
        this.bar = bar;
    }

    public static void main(final String[] args) {
        final Foo f = new Foo();
        System.out.println(f.getBar());
    }
}

和配置文件:

<?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">

    <bean id="bar" class="entity.Bar"></bean>
    <context:annotation-config />

</beans>

但是该Bar对象没有被注入。我在这里遗漏了什么或做错了什么吗?

请注意,我正在使用类上的注释指定 applicationContext 文件。

4

2 回答 2

4

如果这是一个单元测试,看起来,添加

@RunWith(SpringJUnit4ClassRunner.class)

并且applicationContext.xml不要忘记这一点(尽管在这种情况下这不是问题)

<context:component-scan base="org.basepackage" />
于 2010-09-10T10:44:06.100 回答
2

@ContextConfiguration属性是包的一部分,org.springframework.test因此不会以您尝试使用它的方式工作。有关更多详细信息,请参阅Spring 论坛上的这篇文章。

于 2010-09-10T10:34:38.640 回答