cari
RumahJavajavaTutorialMengapa Kaedah Pintasan AOP Spring Saya Tidak Dipanggil Dalam Kaedah Lain?

Why Doesn't My Spring AOP Intercept Method Calls Within Another Method?

Spring AOP Gagal Memintas Panggilan Kaedah dalam Kaedah Lain

Pertimbangkan dua kaedah yang ditakrifkan dalam ABC.java:< ;/p>


kaedah lompang awam1() {

method2();

}

kaedah lompang awam2() {}
< ;/pre>

Untuk menggunakan AOP pada panggilan method2, anda telah menentukan kelas AOPLogger.java dengan kaedah aspek checkAccess. Dalam fail konfigurasi anda:

<br><bean id="advice" class="p.AOPLogger"></bean><br><config> <pre class="brush:php;toolbar:false"><pointcut id="abc" expression="execution(*p.ABC.method2(..))"></pointcut>
<aspect id="service" ref="advice">
    <before pointcut-ref="abc" method="checkAccess"></before>          
</aspect>


Walau bagaimanapun, apabila kaedah2 digunakan, kaedah checkAccess dalam AOPLogger tidak dicetuskan.

Penjelasan

Aspek AOP digunakan pada proksi yang mengelilingi kacang. Apabila anda mendapatkan rujukan kepada kacang, anda sebenarnya tidak bekerja dengan kelas yang dinyatakan dalam konfigurasi anda. Sebaliknya, anda diberikan kelas sintetik yang melaksanakan antara muka yang sesuai, mewakilkan panggilan dan menyediakan kefungsian tambahan (cth., AOP anda).

Dalam kes ini, anda secara langsung menggunakan kaedah2 pada kelas. Jika contoh kelas itu disuntik ke dalam kacang lain sebagai kacang Spring, ia akan disuntik sebagai proksi. Akibatnya, sebarang panggilan kaedah akan dihalakan kepada proksi (dan aspek akan dicetuskan).

Penyelesaian

Untuk menangani isu ini, pertimbangkan pilihan berikut:

    
    
  • Separate method1 and method2 into distinct beans.
  • Employ a non-Spring AOP framework.
  • Atas ialah kandungan terperinci Mengapa Kaedah Pintasan AOP Spring Saya Tidak Dipanggil Dalam Kaedah Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan
    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
    Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

    Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

    Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

    Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

    Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

    Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

    Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

    Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

    Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

    Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

    See all articles

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Artikel Panas

    R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
    1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Tetapan grafik terbaik
    1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
    1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Arahan sembang dan cara menggunakannya
    1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    Versi Mac WebStorm

    Versi Mac WebStorm

    Alat pembangunan JavaScript yang berguna

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    EditPlus versi Cina retak

    EditPlus versi Cina retak

    Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    VSCode Windows 64-bit Muat Turun

    VSCode Windows 64-bit Muat Turun

    Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft