Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 20361|Jawab: 0

[Sumber] Java menganotasi perbedaan antara konstruktor @PostConstruct dan statis

[Salin tautan]
Dipaparkan pada 2021-7-30 10:48:11 | | | |
Baru-baru ini, saya menemukan anotasi ini di proyek perusahaan @PostConstruct dan saya bingung.

Resensi:

Java annotations@PostConstruct dan penjelasan terperinci serta contoh @PreDestroy
https://www.itsvse.com/thread-7386-1-1.html


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:







Mantan:Docker Menginstal Redis Visual Management Tool (redis-manager)
Depan:Nilai auto.offset.reset Kafka dijelaskan secara rinci
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com