Spring PostConstruct dan PreDestroy Annotation

1. Perkenalan

Spring memungkinkan kita untuk melampirkan tindakan kustom untuk pembuatan dan penghancuran kacang. Kita bisa, misalnya, melakukannya dengan mengimplementasikan antarmuka InitializingBean dan DisposableBean .

Dalam tutorial singkat ini, kita akan melihat kemungkinan kedua: @PostConstruct dan @PreDestroy penjelasan.

2. @PostConstruct

Metode panggilan musim semi yang dianotasi dengan @PostConstruct hanya sekali, tepat setelah inisialisasi properti kacang . Perlu diingat bahwa metode ini akan berjalan meskipun tidak ada yang perlu diinisialisasi.

Metode yang dianotasi dengan @PostConstruct dapat memiliki tingkat akses apa pun tetapi tidak boleh statis.

Salah satu contoh penggunaan @PostConstruct adalah mengisi database. Selama pengembangan, misalnya, kami mungkin ingin membuat beberapa pengguna default:

@Component public class DbInit { @Autowired private UserRepository userRepository; @PostConstruct private void postConstruct() { User admin = new User("admin", "admin password"); User normalUser = new User("user", "user password"); userRepository.save(admin, normalUser); } }

Contoh di atas pertama-tama akan menginisialisasi UserRepository dan kemudian menjalankan metode @PostConstruct .

3. @Hancurkan

Metode yang dianotasi dengan @PreDestroy hanya berjalan sekali, tepat sebelum Spring menghapus kacang kita dari konteks aplikasi.

Sama seperti @PostConstruct , metode yang dianotasi dengan @PreDestroy dapat memiliki tingkat akses apa pun tetapi tidak boleh statis.

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

Tujuan dari metode ini seharusnya untuk melepaskan sumber daya atau melakukan tugas pembersihan lainnya sebelum kacang dimusnahkan, misalnya menutup koneksi database.

4. Java 9+

Perhatikan bahwa kedua @PostConstruct dan @PreDestroy penjelasan merupakan bagian dari Java EE. Dan karena Java EE sudah tidak digunakan lagi di Java 9 dan dihapus di Java 11, kami harus menambahkan ketergantungan tambahan untuk menggunakan anotasi ini:

 javax.annotation javax.annotation-api 1.3.2 

5. Kesimpulan

Dalam tutorial singkat ini, kita telah belajar bagaimana menggunakan @PostConstruct dan @PreDestroy penjelasan.

Seperti biasa, semua kode sumber tersedia di GitHub.