Lühike sissejuhatus
Java EE5 tutvustab kahte annotatsiooni, @PostConstruct ja @PreDestroy, mis toimivad servleti elutsükli jooksul, võimaldades kohandatud toiminguid enne ubade initsialiseerimist ja enne selle hävitamist. See artikkel selgitab peamiselt @PostConstruct.
API kasutusjuhised
Järgnevad juhised @PostConstruct API kasutamiseks:
PostConstruct annotatsioone kasutatakse meetodite puhul, mis tuleb käivitada pärast sõltuvussüstimise lõpetamist, et teostada mis tahes inisialiseerimist. See meetod tuleb enne klassi teenistusse lisamist välja kutsuda. Kõik klassid, mis toetavad sõltuvussüstit, peavad seda annotatsiooni toetama. Isegi kui klass ei taotle ressursi süstimist, tuleb kutsuda välja PostConstructiga märgistatud meetod. Selle annotatsiooniga on ainult üks viis. PostConstructi annotatsioonide rakendamise meetod peab vastama kõigile järgmistele kriteeriumidele: meetodil ei tohi olla parameetreid, välja arvatud juhul, kui tegemist on EJB interceptoriga, nagu on määratletud EJB spetsifikatsioonis, sel juhul tuleb see InvocationContext objektiga; Meetodi tagastustüüp peab olema tühine; Meetod ei tohi visata märgitud erandit; PostConstructi rakendamise meetod võib olla avalik, kaitstud, pakkide privaatne või privaatne; Meetod ei saa olla staatiline, välja arvatud rakenduse kliendi puhul; Meetod võib olla lõplik; Kui meetod annab kontrollimata erandi, siis klassi ei tohi teenusesse paigutada, välja arvatud juhul, kui tegemist on EJB-ga, mis suudab erandit hallata ja sellest taastada. Seda võib kokku võtta järgmiselt:
- Selle annotatsiooniga on ainult üks viis;
- Annotatsiooniga meetodil ei tohi olla parameetreid;
- Annotatsiooniga meetod tagastab väärtuse tühi;
- Annotatsiooniga meetod ei tohi visata kontrollitud erandit;
- Annotatsiooniga meetod peab olema mittestaatiline meetod;
- Seda meetodit tehakse vaid üks kord;
Servleti täitmise vooskeem
Kahe annotatsiooni lisamine võimaldab servletil täita ainult vooskeemi:
Konkreetse oa instantsimisprotsessi käigus nimetatakse annotatsiooniga meetodit @PostConstruct konstruktimeetodi järgi ja enne init-meetodit.
Näide
Spring booti põhjal kirjutatud käivitatavad meetodid on leitavad githubist:https://github.com/HappySecondBrother/example
Kasutajateenuse meetod (pakub vahemällu salvestatud andmeid):
BusinessService meetod, kutsudes UserService'i @PostConstruct:
Täitmise tulemused:
Projekti rakendus
project@PostConstruct on peamine rakenduse stsenaarium laadida osa vahemälu andmeid servleti initsialiseerimise ajal.
Märkused:
Selle annotatsiooni kasutamine mõjutab teenuse algusaega. Server skaneerib käivitamisel kõik failid WEB-INF/classs ja kõik jar-paketid WEB-INF/lib all.
|