Impak @Transactional Anotasi pada Kaedah Persendirian
Spring's @Transactional anotasi memainkan peranan penting dalam mengurus sempadan transaksi, memastikan integriti dan konsistensi data . Walau bagaimanapun, keberkesanannya terhad kepada kaedah yang boleh diakses.
Soalan:
Bolehkah anotasi @Transactional digunakan pada kaedah persendirian dalam Spring bean berkesan mewujudkan transaksi?
Jawapan:
Tidak, tidak. Anotasi @Transactional tidak mempunyai kesan pada kaedah persendirian.
Penjelasan:
Spring menggunakan proksi untuk memintas permohonan kaedah dan mengurus transaksi. Walau bagaimanapun, kaedah persendirian tidak boleh dipintas oleh proksi dan oleh itu tidak tertakluk kepada tingkah laku transaksi.
Rujukan Manual Spring:
Batasan ini dinyatakan dengan jelas dalam Manual Spring, bab 10.5.6:
"Keterlihatan kaedah dan @Transactional Apabila menggunakan proksi, anda harus menggunakan anotasi @Transactional hanya pada kaedah dengan keterlihatan awam Jika anda membuat anotasi kaedah yang dilindungi, peribadi atau pakej yang boleh dilihat dengan anotasi @Transactional, tiada ralat dibangkitkan, tetapi kaedah beranotasi. tidak mempamerkan tetapan transaksi yang dikonfigurasikan Pertimbangkan penggunaan AspectJ (lihat di bawah) jika anda perlu membuat anotasi bukan awam kaedah."
Pendekatan Alternatif:
Untuk mengurus transaksi menggunakan kaedah persendirian, pertimbangkan untuk menggunakan:
Dengan menggunakan alternatif ini, kaedah persendirian masih boleh mengambil bahagian dalam tingkah laku transaksi, walaupun dengan pendekatan yang berbeza daripada kaedah awam.
Atas ialah kandungan terperinci Adakah @Transactional Berfungsi pada Kaedah Persendirian pada Musim Bunga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!