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.