Aaron, creo que el código es correcto pero he usado el siguiente:
B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean(bean);
factory.initializeBean(bean, "bean");
El primer método procesará @Autowire
campos y métodos (pero no propiedades clásicas). El segundo método invocará el procesamiento posterior (@PostConstruct
y cualquier BeanPostProcessor
s definido).
El contexto de la aplicación se puede obtener en un bean si implementa la interfaz ApplicationContextAware
.
Tal vez mi código es incorrecto. 'processInjection()' solo rellenará los campos '@ Autowired' mientras que su código también debe procesar' @ PostConstruct' (al menos según JavaDoc). : -/ –
¿También crea un proxy dinámico, si la clase ha sido anotada con la anotación '@ Transactional' por ejemplo? – jeromerg