2010-07-14 5 views
6

JSR-250 sagt, dass alle @Resource kommentierten Methoden werden vor dem @PostConstruct Methode aufgerufen werden ..Alle @Resource Injektion vor jedem @PostConstruct wieder

Meine Frage ist:

Heißt das, dass alle @Resource Kommentierte Methoden für alle Beans in einem Kontext werden aufgerufen, bevor alle annotierten Methoden von @PostConstruct aufgerufen werden? Oder mit anderen Worten, kann eine beans @ PostConstruct-Methode aufgerufen werden, sobald ihre Abhängigkeiten injiziert wurden, selbst wenn andere Beans im Kontext noch keine Abhängigkeiten injiziert haben?

Grüße, Tim.

Antwort

9

Es ist garantiert, dass beim Aufruf eines gegebenen Beans alle seine @Resource Felder eingefügt werden. Wenn eine dieser Injektionen selbst Bohnen mit ihren eigenen @Resource und sind, dann werden diese bereits aufgerufen haben. Mit anderen Worten, zu dem Zeitpunkt, an dem irgendein gegebener aufgerufen wird, ist garantiert, dass alle seine Abhängigkeiten vollständig initialisiert worden sind.

Es ist möglich, und wahrscheinlich in der Tat, dass BeanA aufgebaut und über @PostConstruct vor BeanB initialisiert werden sogar instanziiert wurde, wennBeanB hat keine ausgedrückt Abhängigkeit von BeanA.

+0

Dank Kenny :) Das erklärt es. –