Nesen es saskāros ar šo anotāciju uzņēmuma projekta @PostConstruct un es biju neizpratnē.
Pārskats:
Pēc konsultācijām kopsavilkums ir šāds:
1. Sākot ar Java EE5 specifikāciju, tiek izmantotas divas anotācijas, kas ietekmē servleta dzīves ciklu, @PostConstruct un @PreDestroy, lai modificētu nestatisko void() metodi. Ir divi veidi, kā to uzrakstīt:
@PostConstruct
public void someMethod(){}
vai
publiskais @PostConstruct anulēt someMethod(){}
@PostConstruct modificētā metode darbojas, kad serveris ielādē servletu, unServeris to izpildīs tikai vienu reizi。 PostConstruct tiek izpildīts pēc konstruktora un pirms init() metodes. PreDestroy() metode tiek izpildīta pēc tam, kad destroy() metode ir intelektuāla
Turklāt konstruktora, @Autowired un @PostConstruct pasūtījums pavasarī
Faktiski, no atkarības injekcijas burtiskas nozīmes, mēs varam zināt, ka, lai injicētu objektu p objektā A, tad objekts A un objekts p vispirms ir jāģenerē pirms injekcijas veikšanas. Tātad, ja locekļa mainīgais p ir anotēts @Autowried A klasē, tad @Autowired injekcija notiek pēc A konstrukcijas metodes izpildes.
Ja, ģenerējot objektu, vēlaties pabeigt dažas inicializācijas operācijas, un šīs inicializācijas operācijas ir atkarīgas no atkarības injekcijas, to nevar izdarīt konstruktorā. Lai to izdarītu, varat izmantot metodi @PostConstruct anotācijām, lai pabeigtu inicializāciju, @PostConstruct anotētās metodes tiks automātiski izsauktas pēc atkarības injekcijas pabeigšanas.
Konstruktoru >> @Autowired >> @PostConstruct
Piemērs:
|