Proljetne bilješke PostConstruct i PreDestroy

1. Uvod

Proljeće nam omogućuje da priložimo prilagođene akcije za stvaranje i uništavanje graha. Na primjer, to možemo učiniti primjenom InitializingBean i DisposableBean sučelja.

U ovom kratkom vodiču razmotrit ćemo drugu mogućnost: @PostConstruct i @PreDestroy bilješke.

2. @PostConstruct

Proljetne pozive metode označene s @PostConstruct samo jednom, neposredno nakon inicijalizacije svojstava graha. Imajte na umu da će se ove metode izvoditi čak i ako se nema što pokrenuti.

Metoda označena s @PostConstruct može imati bilo koju razinu pristupa, ali ne može biti statična.

Jedan od primjera upotrebe @PostConstruct popunjava bazu podataka. Tijekom razvoja, na primjer, možda bismo željeli stvoriti neke zadane korisnike:

@Component javna klasa DbInit {@Autowired private UserRepository userRepository; @PostConstruct private void postConstruct () {Administrator korisnika = novi korisnik ("admin", "lozinka administratora"); Korisnik normalUser = novi korisnik ("korisnik", "korisnička lozinka"); userRepository.save (admin, normalUser); }}

Gornji primjer prvo će se inicijalizirati UserRepository a zatim trči @PostConstruct metoda.

3. @PreDestroy

Metoda označena s @PreDestroy pokreće se samo jednom, neposredno prije nego što Spring ukloni naš grah iz konteksta aplikacije.

Isto kao i kod @PostConstruct, metode označene s @PreDestroy može imati bilo koju razinu pristupa, ali ne može biti statična.

@Component javna klasa UserRepository {private DbConnection dbConnection; @PreDestroy public void preDestroy () {dbConnection.close (); }}

Svrha ove metode trebala bi biti oslobađanje resursa ili izvođenje bilo kakvih drugih zadataka čišćenja prije nego što se grah uništi, na primjer zatvaranje veze baze podataka.

4. Java 9+

Imajte na umu da oboje @PostConstruct i @PreDestroy napomene su dio Java EE. A budući da je Java EE zastario u Javi 9 i uklonjen u Javi 11, moramo dodati dodatnu ovisnost da bismo koristili ove bilješke:

 javax.notacija javax.notacija-api 1.3.2 

5. Zaključak

U ovom kratkom vodiču naučili smo kako ga koristiti @PostConstruct i @PreDestroy bilješke.

Kao i uvijek sav izvorni kod dostupan je na GitHubu.