2010-07-14 7 views
6

JSR-250 dice che tutti i metodi @Resource annotato saranno chiamati prima che il metodo @PostConstruct ..Tutti @Resource iniezione prima di qualsiasi nuovo @PostConstruct

La mia domanda è:

vuol dire che tutti @Resource i metodi annotati su tutti i bean in un contesto verranno chiamati prima che vengano chiamati tutti i metodi annotati @PostConstruct? O in altre parole, un metodo @PostConstruct può essere chiamato una volta che le sue dipendenze sono state iniettate anche se altri bean nel contesto non hanno ancora avuto le dipendenze iniettate?

Cordiali saluti, Tim.

risposta

9

È garantito che quando viene chiamato un determinato bean @PostConstruct, tutti i suoi campi @Resource siano stati iniettati. Se una di quelle iniezioni sono esse stesse con il proprio @Resource e @PostConstruct, allora quelle saranno già state chiamate. In altre parole, quando viene chiamato un qualsiasi @PostConstruct, è garantito che tutte le sue dipendenze sono state completamente inizializzate.

E 'possibile, e di fatto probabile, che BeanA sarà costruito e inizializzata tramite @PostConstruct prima BeanB è stata anche creata un'istanza, seBeanB ha alcuna dipendenza espresso sulle BeanA.

+0

Grazie Kenny :) Questo lo spiega. –

Problemi correlati