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.


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