Jarné poznámky PostConstruct a PreDestroy

1. Úvod

Jar nám umožňuje pripájať vlastné akcie k vytvoreniu a zničeniu fazule. Môžeme to napríklad urobiť implementáciou InitializingBean a Jednorazová fazuľa rozhrania.

V tomto krátkom návode sa pozrieme na druhú možnosť: @PostConstruct a @PreDestroy anotácie.

2. @PostConstruct

Metódy jara volá anotované s @PostConstruct iba raz, tesne po inicializácii vlastností fazule. Majte na pamäti, že tieto metódy budú fungovať, aj keď nie je čo inicializovať.

Metóda komentovaná @PostConstruct môže mať ľubovoľnú úroveň prístupu, ale nemôže byť statická.

Jeden príklad použitia @PostConstruct vypĺňa databázu. Počas vývoja napríklad môžeme chcieť vytvoriť niektorých predvolených používateľov:

@ Komponent verejná trieda DbInit {@Autowired súkromné ​​UserRepository userRepository; @PostConstruct private void postConstruct () {User admin = new User ("admin", "admin password"); User normalUser = new User ("user", "user password"); userRepository.save (admin, normalUser); }}

Vyššie uvedený príklad sa najskôr inicializuje UserRepository a potom bežať @PostConstruct metóda.

3. @PreDestroy

Metóda s poznámkou @PreDestroy beží iba raz, tesne predtým, ako Spring odstráni našu fazuľu z kontextu aplikácie.

Rovnako ako s @PostConstruct, metódy komentované @PreDestroy môže mať ľubovoľnú úroveň prístupu, ale nemôže byť statická.

@ Komponent public class UserRepository {private DbConnection dbConnection; @PreDestroy public void preDestroy () {dbConnection.close (); }}

Účelom tejto metódy by malo byť uvoľnenie prostriedkov alebo vykonanie akýchkoľvek ďalších čistiacich úloh predtým, ako dôjde k zničeniu fazule, napríklad zatvorenie databázového pripojenia.

4. Java 9+

Všimnite si, že oboje @PostConstruct a @PreDestroy anotácie sú súčasťou Java EE. A keďže Java EE bola v Java 9 zastaraná a odstránená v Java 11, musíme pridať ďalšiu závislosť, aby sme mohli používať tieto anotácie:

 javax.annotation javax.annotation-api 1.3.2 

5. Záver

V tomto krátkom tutoriáli sme sa naučili, ako používať @PostConstruct a @PreDestroy anotácie.

Ako vždy je všetok zdrojový kód k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found