Rumah > Java > javaTutorial > Adakah Anotasi @Transactional Spring Berfungsi pada Kaedah Persendirian?

Adakah Anotasi @Transactional Spring Berfungsi pada Kaedah Persendirian?

Barbara Streisand
Lepaskan: 2024-12-25 14:09:11
asal
289 orang telah melayarinya

Does Spring's @Transactional Annotation Work on Private Methods?

Keberkesanan Atribut Transaksi pada Kaedah Persendirian pada Musim Bunga

Dalam Musim Bunga, anotasi @Transactional membolehkan penandaan sempadan transaksi untuk kaedah. Soalan lazim timbul mengenai keberkesanan anotasi ini apabila digunakan pada kaedah persendirian dalam kacang Spring.

Jawapannya mudah: @Transaksi tidak mempunyai kesan ke atas kaedah persendirian. Ini disebabkan oleh penjana proksi yang digunakan oleh Spring mengabaikan kaedah persendirian.

Untuk menjelaskan lebih lanjut, pertimbangkan contoh berikut:

public class Bean {
  public void doStuff() {
     doPrivateStuff();
  }
  @Transactional
  private void doPrivateStuff() {

  }
}
Salin selepas log masuk

Walaupun anotasi @Transactional pada kaedah persendirian doPrivateStuff() , ia tetap tidak berkesan dan tidak mengubah suai tingkah laku transaksi. Tingkah laku ini didokumenkan dalam Bab 10.5.6 Manual Spring, yang menyatakan secara eksplisit:

"Apabila menggunakan proksi, anda harus menggunakan anotasi @Transactional hanya pada kaedah dengan keterlihatan awam. Jika anda membuat anotasi dilindungi, peribadi atau kaedah yang boleh dilihat pakej dengan anotasi @Transactional, tiada ralat dibangkitkan, tetapi kaedah beranotasi tidak mempamerkan tetapan transaksi yang dikonfigurasikan penggunaan AspectJ... jika anda perlu menganotasi kaedah bukan awam."

Atas ialah kandungan terperinci Adakah Anotasi @Transactional Spring Berfungsi pada Kaedah Persendirian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan