Tavaszi PostConstruct és PreDestroy kommentárok

1. Bemutatkozás

A tavasz lehetővé teszi számunkra, hogy egyedi intézkedéseket csatoljunk a bab létrehozásához és megsemmisítéséhez. Megtehetjük például a InitializingBean és Eldobható bab interfészek.

Ebben a rövid bemutatóban megvizsgáljuk a második lehetőséget: a @PostConstruct és @PreDestroy annotációk.

2. @PostConstruct

A tavaszi hívási módszerek a @PostConstruct csak egyszer, a bab tulajdonságainak inicializálása után. Ne feledje, hogy ezek a módszerek akkor is futnak, ha nincs mit inicializálni.

A módszerrel annotált @PostConstruct bármilyen hozzáférési szinttel rendelkezhet, de nem lehet statikus.

Az egyik példa a @PostConstruct adatbázist tölt be. A fejlesztés során például érdemes létrehozni néhány alapértelmezett felhasználót:

@Component public class DbInit {@Autowired private UserRepository userRepository; @PostConstruct private void postConstruct () {Felhasználó admin = new Felhasználó ("admin", "admin jelszó"); Felhasználó normalUser = új felhasználó ("felhasználó", "felhasználói jelszó"); userRepository.save (admin, normalUser); }}

A fenti példa először inicializálja UserRepository majd futni @PostConstruct módszer.

3. @PreDestroy

A módszerrel annotált módszer @PreDestroy csak egyszer fut, közvetlenül azelőtt, hogy a Spring eltávolítja a babunkat az alkalmazási környezetből.

Ugyanaz, mint a @PostConstruct, a módszerekkel annotált @PreDestroy bármilyen hozzáférési szinttel rendelkezhet, de nem lehet statikus.

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

Ennek a módszernek az kell lennie, hogy erőforrásokat szabadítson fel, vagy bármilyen más tisztítási feladatot hajtson végre, mielőtt a bab megsemmisül, például lezár egy adatbázis-kapcsolatot.

4. Java 9+

Vegye figyelembe, hogy mindkettő @PostConstruct és @PreDestroy a kommentárok a Java EE részét képezik. És mivel a Java EE már elavult a Java 9-ben, és eltávolításra került a Java 11-ben, hozzá kell adnunk egy további függőséget a megjegyzések használatához:

 javax.annotation javax.annotation-api 1.3.2 

5. Következtetés

Ebben a rövid bemutatóban megtanultuk a használatát @PostConstruct és @PreDestroy annotációk.

Mint mindig, minden forráskód elérhető a GitHubon.