@Autowired аннотация не работает - PullRequest
       13

@Autowired аннотация не работает

1 голос
/ 10 сентября 2010

Я пытаюсь проверить опцию 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 с помощью аннотации для класса.

Ответы [ 2 ]

4 голосов
/ 10 сентября 2010

Если это юнит-тест, как кажется, добавьте

@RunWith(SpringJUnit4ClassRunner.class)

И в вашем applicationContext.xml не забудьте об этом (хотя в данном случае это не проблема)

<context:component-scan base="org.basepackage" />
2 голосов
/ 10 сентября 2010

Атрибут @ ContextConfiguration является частью пакета org.springframework.test, поэтому он не будет работать так, как вы пытались его использовать.См. этот пост на форумах Spring для более подробной информации.

...