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
349 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!

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