Aaron, io credo che il codice è corretto, ma ho usato il seguente:
B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean(bean);
factory.initializeBean(bean, "bean");
Il primo metodo elaborerà @Autowire
campi e metodi (ma non proprietà classiche). Il secondo metodo invoca la post-elaborazione (@PostConstruct
e qualsiasi numero definito BeanPostProcessor
s).
Il contesto dell'applicazione può essere ottenuto in un bean se implementa l'interfaccia ApplicationContextAware
.
Forse il mio codice è sbagliato. 'processInjection()' riempirà solo i campi '@ Autowired' mentre il codice dovrebbe elaborare' @ PostConstruct' (almeno secondo JavaDoc). : -/ –
Crea anche un proxy dinamico, se la classe è stata annotata con annotazione '@ Transactional', ad esempio? – jeromerg