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.