2012-08-15 29 views

Respuesta

28

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.

+0

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). : -/ –

+2

¿También crea un proxy dinámico, si la clase ha sido anotada con la anotación '@ Transactional' por ejemplo? – jeromerg

Cuestiones relacionadas