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.