Spring PostConstruct and PreDestroy Annotations
1. Introduksjon
Våren tillater oss å feste tilpassede handlinger til bønneskaping og ødeleggelse. Vi kan for eksempel gjøre det ved å implementere InitialisererBønne og Engangsbønne grensesnitt.
I denne korte opplæringen ser vi på en annen mulighet: @PostConstruct og @PreDestroy kommentarer.
2. @PostConstruct
Våren kaller metoder merket med @PostConstruct bare en gang, like etter initialiseringen av bønneegenskapene. Husk at disse metodene vil kjøre selv om det ikke er noe å initialisere.
Metoden kommentert med @PostConstruct kan ha noe tilgangsnivå, men det kan ikke være statisk.
Ett eksempel på bruk av @PostConstruct fyller ut en database. Under utviklingen, for eksempel, vil vi kanskje opprette noen standardbrukere:
@Komponent offentlig klasse DbInit {@Autowired private UserRepository userRepository; @ PostConstruct privat ugyldig postConstruct () {User admin = new User ("admin", "admin password"); Bruker normalUser = ny bruker ("bruker", "brukerpassord"); userRepository.save (admin, normalUser); }}
Ovennevnte eksempel vil først initialiseres UserRepository og løp deretter @PostConstruct metode.
3. @PreDestroy
En metode kommentert med @PreDestroy kjører bare en gang, rett før våren fjerner bønnen vår fra applikasjonssammenheng.
Samme som med @PostConstruct, metodene kommentert med @PreDestroy kan ha noe tilgangsnivå, men kan ikke være statisk.
@Component public class UserRepository {private DbConnection dbConnection; @PreDestroy offentlig ugyldig preDestroy () {dbConnection.close (); }}
Hensikten med denne metoden skal være å frigjøre ressurser eller utføre andre opprydningsoppgaver før bønnen blir ødelagt, for eksempel å lukke en databaseforbindelse.
4. Java 9+
Legg merke til at begge @PostConstruct og @PreDestroy merknader er en del av Java EE. Og siden Java EE er utfaset i Java 9 og fjernet i Java 11, må vi legge til en ekstra avhengighet for å bruke disse merknadene:
javax.annotation javax.annotation-api 1.3.2
5. Konklusjon
I denne korte opplæringen har vi lært hvordan du bruker @PostConstruct og @PreDestroy kommentarer.
Som alltid er all kildekode tilgjengelig på GitHub.