Baru-baru ini, saya menemukan anotasi ini di proyek perusahaan @PostConstruct dan saya bingung.
Resensi:
Setelah berkonsultasi, ringkasannya adalah sebagai berikut:
1. Mulai dari spesifikasi Java EE5, dua anotasi yang memengaruhi siklus hidup servlet, @PostConstruct dan @PreDestroy, digunakan untuk memodifikasi metode void() non-statis. Ada dua cara untuk menulisnya:
@PostConstruct
public void someMethod(){}
atau
publik @PostConstruct membatalkan someMethod(){}
Metode @PostConstruct dimodifikasi berjalan saat server memuat servlet, danIni hanya akan dieksekusi sekali oleh server。 PostConstruct dieksekusi setelah konstruktor dan sebelum metode init(). Metode PreDestroy() dijalankan setelah metode destroy() bersifat intelektual
Selain itu, urutan Konstruktor, @Autowired, dan @PostConstruct di musim semi
Padahal, dari arti harfiah dari injeksi dependensi, kita dapat mengetahui bahwa untuk menyuntikkan objek p ke dalam objek A, maka objek A dan objek p harus dihasilkan terlebih dahulu sebelum injeksi dapat dilakukan. Jadi, jika variabel anggota p dianotasi @Autowried di kelas A, maka injeksi @Autowired terjadi setelah metode konstruksi A dieksekusi.
Jika Anda ingin menyelesaikan beberapa operasi inisialisasi saat menghasilkan objek, dan operasi inisialisasi ini bergantung pada injeksi dependensi, maka Anda tidak dapat melakukannya di konstruktor. Untuk melakukan ini, Anda dapat menggunakan metode @PostConstruct anotasi untuk menyelesaikan inisialisasi, metode @PostConstruct beranotasi akan secara otomatis dipanggil setelah injeksi dependensi selesai.
Konstruktor >> @Autowired >> @PostConstruct
Contoh:
|