2012-08-15 9 views

Odpowiedz

28

Aaron, wierzę, że kod jest prawidłowy, ale stosuje się następującą:

B bean = new B(); 
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory(); 
factory.autowireBean(bean); 
factory.initializeBean(bean, "bean"); 

pierwsza metoda będzie przetwarzać @Autowire pól i metody (ale nie właściwości klasyczne). Druga metoda wywoła przetwarzanie końcowe (@PostConstruct i dowolne zdefiniowane BeanPostProcessor s).

Kontekst aplikacji można uzyskać w komponencie bean, jeśli implementuje interfejs ApplicationContextAware.

+0

Może mój kod jest błędny. 'processInjection()' wypełni tylko pola '@ Autowired', podczas gdy twój kod powinien również przetwarzać' @ PostConstruct' (przynajmniej zgodnie z JavaDoc). : -/ –

+2

Czy tworzy on również dynamiczny serwer proxy, jeśli ta klasa została przypisana na przykład adnotacją '@ Transactional'? – jeromerg

Powiązane problemy