2010-07-14 9 views
6

JSR-250 dice que todos los métodos @Resource anotada serán llamados antes del método @PostConstruct ..inyección @Resource antes de cualquier nuevo @PostConstruct

Mi pregunta es:

¿Eso significa que todos @Resource Se invocarán métodos anotados en todos los beans en un contexto antes de llamar a cualquier método @PostConstruct anotado. O, en otras palabras, ¿se puede llamar a un método @PostConstruct de frijoles una vez que se han inyectado sus dependencias incluso si otros beans en el contexto todavía no han tenido sus dependencias inyectadas?

Saludos, Tim.

Respuesta

9

Se garantiza que cuando se llame a un grano dado @PostConstruct, se hayan inyectado todos sus campos @Resource. Si cualquiera de esas inyecciones son frijoles con sus propios @Resource y @PostConstruct, entonces ya se habrán llamado. En otras palabras, cuando se llama a cualquier @PostConstruct dado, se garantiza que todas sus dependencias se hayan inicializado por completo.

Es posible, y de hecho probable, que BeanA se construye y se inicializa a través @PostConstruct antes BeanB incluso ha creado una instancia, si BeanB tiene ninguna dependencia expresado en BeanA.

+0

Gracias Kenny :) Eso lo explica. –

Cuestiones relacionadas