Kratek uvod
Java EE5 uvaja dve anotaciji, @PostConstruct in @PreDestroy, ki delujeta na življenjski cikel servleta in omogočata prilagojene operacije pred inicializacijo zrna in pred njegovo uničenjem. Ta članek predvsem pojasnjuje @PostConstruct.
Navodila za uporabo API
Spodaj so navodila za uporabo @PostConstruct API-ja:
PostConstruct oznake se uporabljajo pri metodah, ki jih je treba izvesti po končani injekciji odvisnosti za izvedbo inicializacije. To metodo je treba poklicati, preden se razred vključi v storitev. Vsi razredi, ki podpirajo injiciranje odvisnosti, morajo podpirati to oznako. Tudi če razred ne zahteva vbrizgavanja virov, je treba poklicati metodo, označeno s PostConstruct. Obstaja le en način za označevanje s to oznako. Metoda za uporabo PostConstruct oznak mora izpolnjevati vse naslednje kriterije: metoda ne sme imeti nobenih parametrov, razen v primeru EJB interceptorja, kot ga določa EJB specifikacija, v tem primeru bo imela objekt InvocationContext; Tip vračila metode mora biti neveljaven; Metoda ne sme vržeti preverjene izjeme; Način uporabe PostConstruct je lahko javni, zaščiteni, zasebni paketi ali zasebni; Metoda ne more biti statična, razen za aplikacijskega odjemalca; Metoda je lahko dokončna; Če metoda vrže neoznačeno izjemo, razreda ne smemo umestiti v storitev, razen če gre za EJB, ki lahko obravnava izjemo in se iz nje obnovi. Lahko jo povzamemo takole:
- Obstaja le en način za označevanje s to oznako;
- Anotirana metoda ne sme imeti nobenih parametrov;
- Anotirana metoda vrne vrednost praznine;
- Anotirana metoda ne sme vržeti preverjene izjeme;
- Anotirana metoda mora biti nestatična metoda;
- Ta metoda se izvede le enkrat;
Diagram poteka izvajanja servleta
Dodajanje dveh opomb bo servletu omogočilo le izvajanje diagrama poteka:
Med postopkom instanciranja določenega zrna se anotirana metoda @PostConstruct pokliče za metodo konstrukta in pred metodo init.
Primer
Izvedljive metode, napisane na osnovi Spring boota, so na voljo na githubu:https://github.com/HappySecondBrother/example
Metoda UserService (zagotavlja predpomnjene podatke):
Metoda BusinessService, klic UserService preko @PostConstruct:
Rezultati izvedbe:
Projektna prijava
V project@PostConstruct je glavni scenarij aplikacije, da se ob inicializaciji servleta naloži nekaj podatkov iz predpomnilnika.
Opombe:
Uporaba te opombe vpliva na začetek storitve. Strežnik ob zagonu skenira vse datoteke v WEB-INF/classes in vse jar pakete pod WEB-INF/lib.
|