我正在尝试像这样测试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文件。
答案 0 :(得分:4)
如果这是一个单元测试,就像看起来一样,添加
@RunWith(SpringJUnit4ClassRunner.class)
在你的applicationContext.xml
中不要忘记这一点(虽然在这种情况下不是问题)
<context:component-scan base="org.basepackage" />
答案 1 :(得分:2)
@ContextConfiguration属性是org.springframework.test
包的一部分,因此不会以您尝试使用它的方式工作。有关详细信息,请参阅Spring论坛上的this post。