Lyhyt johdanto
Java EE5 esittelee kaksi annotaatiota, @PostConstruct ja @PreDestroy, jotka vaikuttavat servletin elinkaareen ja mahdollistavat mukautetut toiminnot ennen pavun alustusta ja ennen sen tuhoamista. Tämä artikkeli selittää pääasiassa @PostConstruct.
API:n käyttöohjeet
Seuraavat ovat ohjeet @PostConstruct API:n käyttöön:
PostConstruct-annotaatioita käytetään menetelmiin, jotka täytyy suorittaa riippuvuuden injektion valmistuttua minkä tahansa alustuksen suorittamiseksi. Tämä menetelmä täytyy kutsua ennen luokan lisäämistä palveluun. Kaikkien luokkien, jotka tukevat riippuvuuden injektiota, on tuettava tätä annotaatiota. Vaikka luokka ei pyytäisi resurssien injektiota, PostConstructilla merkitty metodi täytyy kutsua. Tämän merkinnän tekemiseen on vain yksi tapa. PostConstruct-annotaatioiden soveltamismenetelmän on noudatettava kaikkia seuraavia kriteerejä: metodilla ei saa olla parametreja, ellei kyseessä ole EJB-interseptorin tapauksessa, kuten EJB-määrittelyssä määritellään, jolloin siihen tulee InvocationContext-objekti; Menetelmän palautustyypin on oltava mitätön; Menetelmä ei saa heittää tarkistettua poikkeusta; PostConstructin soveltamismenetelmä voi olla julkinen, suojattu, pakettien yksityinen tai yksityinen; Metodi ei voi olla staattinen, paitsi sovellusasiakasohjelmassa; Menetelmä voi olla lopullinen; Jos metodi heittää tarkistamattoman poikkeuksen, luokkaa ei saa sijoittaa palveluun, ellei kyseessä ole EJB, joka pystyy käsittelemään poikkeusta ja palauttamaan siitä. Se voidaan tiivistää seuraavasti:
- Tämän merkinnän tekemiseen on vain yksi tapa;
- Annotoidulla menetelmällä ei saa olla mitään parametreja;
- Annotoitu menetelmä palauttaa arvon void;
- Annotoitu menetelmä ei saa heittää tarkistettua poikkeusta;
- Kommentoidun menetelmän tulee olla ei-staattinen menetelmä;
- Tämä menetelmä tehdään vain kerran;
Servletin suorituskaavio
Kahden merkinnän lisääminen sallii servletin suorittaa vain vuokaavion:
Tietyn pavun instansointiprosessin aikana annotoitu menetelmä @PostConstruct kutsutaan konstruktiomenetelmän jälkeen ja ennen init-menetelmää.
Esimerkki
Spring bootin pohjalta kirjoitetut suoritettavat metodit löytyvät githubista:https://github.com/HappySecondBrother/example
UserService-metodi (tarjoaa välimuistissa olevat tiedot):
BusinessService-metodi, kutsuen UserServiceä @PostConstruct:
Toteutuksen tulokset:
Projektin soveltaminen
project@PostConstruct pääasiallinen sovellusskenaario on ladata välimuistidataa servletin alustuksen yhteydessä.
Huomautuksia:
Tämän merkinnän käyttö vaikuttaa palvelun aloitusaikaan. Palvelin skannaa kaikki tiedostot WEB-INF/classeissa ja kaikki jar-paketit WEB-INF/lib -alaisuudessa käynnistyksessä.
|