Rövid bevezetés
A Java EE5 két annotációt vezet be, @PostConstruct és @PreDestroy, amelyek a szervlet életciklusára hatnak, lehetővé téve az egyedi műveleteket a bab inicializálása és a megsemmisítés előtt. Ez a cikk főként @PostConstruct magyarázza.
API használati utasítások
Az alábbiakban a @PostConstruct API használatának útmutatói találhatók:
A PostConstruct annotációkat olyan metódusok esetében használják, amelyeket a függőségi injekció befejezése után kell végrehajtani az inicializáció végrehajtásához. Ezt a módszert elő kell hívni, mielőtt az osztályt a szolgáltatásba helyeznénk. Minden olyan osztálynak, amely támogatja a függőségi injekciót, támogatnia kell ezt az annotációt. Még ha az osztály nem is kér erőforrás-injekciót, a PostConstruct-val jegyzetelt metódust meg kell hívni. Csak egy módja van ennek a megjegyzésnek a megjegyzése. A PostConstruct annotációk alkalmazására szolgáló módszernek az alábbi kritériumoknak mind megfelelnie kell: a módszernek nem lehet paramétere, kivéve, ha az EJB interceptor esetében az EJB specifikáció határozza meg, ekkor InvocationContext objektumot is tartalmaz; A módszer visszatérési típusának érvényesnek kell lennie; A módszer nem dobhat bejelölt kivételt; A PostConstruct alkalmazásának módja lehet nyilvános, védett, csomag privát vagy privát; A metódus nem lehet statikus a program kliensénél; A módszer lehet végleges; Ha a metódus ellenőrzetlen kivételt dob, akkor az osztályt nem szabad a szolgáltatásba helyezni, hacsak nem egy EJB képes kezelni a kivételt és helyreállítani belőle. Összefoglalható a következőként:
- Csak egy módja van ennek a megjegyzésnek ezzel a megjegyzéssel;
- Az annotált módszernek nem tartalmaznia paramétereket;
- Az annotált módszer "void" értéket ad vissza;
- Az annotált módszer nem dobhat ellenőrzött kivételt;
- Az annotált módszernek nem statikus módszernek kell lennie;
- Ezt a módszert csak egyszer alkalmazzák;
Servlet végrehajtási folyamatábra
Két annotáció hozzáadása csak a szervet engedi végrehajtani a folyamatábrat:
Egy adott bab instanciációs folyamata során az annotált módszert @PostConstruct a konstruktált módszer után, az init módszer előtt nevezzük.
Példa
A Spring boot alapján írt futtatható módszerek megtalálhatók a githubon:https://github.com/HappySecondBrother/example
UserService módszer (gyorsítótározott adatokat biztosít):
BusinessService metádus, a UserService hívása @PostConstruct:
Végrehajtási eredmények:
Projekt alkalmazása
A project@PostConstruct fő alkalmazási helyzet az, hogy a szervet inicializáláskor betöltünk néhány gyorsítótár adatot.
Megjegyzések:
Ennek az annotációnak a használata befolyásolja a szolgáltatás kezdeti idejét. A szerver minden fájlt a WEB-INF/class-ban, valamint minden jar csomagot a WEB-INF/lib alatt beszkennel indításkor.
|