Я пытаюсь проверить опцию 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 не вводится. Я что-то здесь упускаю или делаю что-то не так?
Bar
Обратите внимание, что я указываю файл applicationContext с помощью аннотации для класса.
Если это юнит-тест, как кажется, добавьте
@RunWith(SpringJUnit4ClassRunner.class)
И в вашем applicationContext.xml не забудьте об этом (хотя в данном случае это не проблема)
applicationContext.xml
<context:component-scan base="org.basepackage" />
Атрибут @ ContextConfiguration является частью пакета org.springframework.test, поэтому он не будет работать так, как вы пытались его использовать.См. этот пост на форумах Spring для более подробной информации.
org.springframework.test