2012-08-15 6 views

Antwort

28

Aaron, ich glaube, dass der Code korrekt ist, aber ich habe folgendes:

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

Die erste Methode wird @Autowire Felder bearbeiten und Methoden (aber nicht klassische Eigenschaften). Die zweite Methode ruft die Nachbearbeitung auf (und jede definierte BeanPostProcessor s).

Anwendungskontext kann in einer Bean erhalten werden, wenn sie ApplicationContextAware Schnittstelle implementiert.

+0

Vielleicht ist mein Code falsch. 'processInjection()' wird nur '@ Autowired' Felder füllen, während Ihr Code' @ PostConstruct' ebenfalls verarbeiten soll (zumindest gemäß dem JavaDoc). : -/ –

+2

Erstellt es auch einen dynamischen Proxy, wenn die Klasse beispielsweise mit '@ Transactional' Annotation versehen wurde? – jeromerg