2015-10-13 2 views
0

Я инстанцирован контейнер для кофейных зерен с помощьюКак использовать @Autowired с BeanFactory

BeanFactory factory = new XmlBeanFactory(new ClassPathResource("ApplicationContext.xml")); 

и я также зарегистрировал AutowiredAnnotationBeanPostProcessor с помощью

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 

, но когда я делаю это

@Autowired 
@Qualifier("emailService") 
private MessageService messageService; 

его предоставление NPE означает, что Autowiring не работает с аннотацией, что проблема с этим? Не могу ли я использовать BeanFactory с @Autowired?

+0

Что вы не используете 'ApplicationContext', а' BeanFactory'. См. Http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#context-introduction-ctx-vs-beanfactory. –

+0

@ M.Deinum, поэтому нельзя использовать '@ Autowired' с BeanFactory? – eatSleepCode

+0

Правильно, так как это только «BeanFactory». –

ответ

0

В соответствии с вашим вопросом может быть два решения.

1) Прежде всего, необходимо проверить, является ли ваш класс annoted с как @ Компонента @ службы

2) И вы не можете вызвать класс с новым объектом, вы должны извлечь из ApplicationContext только.

Смежные вопросы