Secara umum, kami mengonfigurasi manajemen transaksi untuk kode lapisan layanan di aplikasi file konfigurasi Spring.xml. Kami dapat meningkatkan metode layanan atau pemrosesan transaksi seperti rollback transaksi. Namun, ketika kita mengalami masalah, jika metode lapisan layanan dipanggil di kelas pengontrol, manajemen transaksi yang dikonfigurasi akan tidak valid. Jika kami menanyakan informasi yang relevan dan menemukan alasannya. Faktanya, Spring dan SpringMVC adalah hubungan orang tua-anak, musim semi adalah wadah orang tua, dan SpringMVC adalah wadah anak. Dengan kata lain, Application.xml harus bertanggung jawab untuk memindai anotasi @Controller seperti @Service, sedangkan file konfigurasi SpringMVC hanya boleh bertanggung jawab untuk memindai @Controller, jika tidak, ia akan menyebabkan pewarnaan berulang untuk menyebabkan transaksi yang dikonfigurasi dalam wadah musim semi menjadi tidak valid.
Oleh karena itu, metode konfigurasi yang benar harus:
File Konfigurasi Musim Semi: Application.xml
<konteks: komponen-scan-package = "org.bc.redis" use-default-filters = "true"> <!-Kecualikan kelas dengan anotasi @controller-> <konteks: tidak termasuk filter type = "annotation" expression = "org.bc.redis.controller.usercontroller"/</org.bc.redis.controller.usercontroller "/</</companye: companonon.canonon.canon-scholler.usercontroller"/</org.bc.redis.controller.usercontroller "/</company
atau
<!-Tentukan paket yang dipindai, hindari paket yang berisi anotasi @controller-> <konteks: komponen-scan-package = "org.bc.redis.service" penggunaan-default-filters = "true"> </konteks: component-scan>
File Konfigurasi SpringMVC: springmvc.xml
<!-Pindai hanya paket dengan anotasi @Controller untuk menghindari pemindaian berulang-> <konteks: komponen-scan-package = "org.bc.redis.controller" use-default-filters = "true"> </konteks: component-scan>
akhirnya
Setelah pengujian, masalah utamanya adalah file konfigurasi SpringMVC memindai lingkup paket. Bahkan jika file konfigurasi Spring memindai anotasi @Controller, itu akan diselamatkan sekali di SpringMVC. Selama layanan manajemen transaksi tidak diselamatkan, tidak akan ada masalah kegagalan transaksi.
Meringkaskan
Di atas adalah semua konten artikel ini tentang alasan dan solusi untuk manajemen transaksi yang tidak valid dari konfigurasi pegas+springmvc. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!