Rumah >Java >javaTutorial >Mengapa Penapis Spring saya Dikenakan Dua Kali Apabila Didaftarkan sebagai Kacang?

Mengapa Penapis Spring saya Dikenakan Dua Kali Apabila Didaftarkan sebagai Kacang?

DDD
DDDasal
2024-12-09 15:55:12717semak imbas

Why is my Spring Filter Invoked Twice When Registered as a Bean?

Penapis Dikenakan Dua Kali selepas Pendaftaran sebagai Spring Bean

Masalah:

Percubaan untuk menggunakan @Autowire dengan hasil Penapis dalam seruan berganda yang tidak dijangka daripada penapis. Selepas pemeriksaan lebih dekat, didapati bekas Spring mencetuskan seruan tambahan ini apabila penapis didaftarkan sebagai kacang.

Penyelesaian:

Untuk menyelesaikan isu ini, pertimbangkan untuk melaksanakan salah satu pendekatan berikut:

  1. Lumpuhkan Penapis Automatik Pendaftaran:

    Elakkan daripada mendedahkan penapis sebagai kacang dan daftarkannya secara manual dengan Spring Security. Ini menghalang Spring Boot daripada mendaftarkan penapis secara automatik dua kali.

  2. Gunakan FilterRegistrationBean:

    Jika suntikan pergantungan ke dalam penapis diperlukan, ia mesti didaftarkan sebagai kacang. Walau bagaimanapun, untuk mengelakkan pendaftaran automatik, FilterRegistrationBean boleh digunakan dengan sifat "didayakan" ditetapkan kepada false. Contoh pelaksanaan:

@Bean
public FilterRegistrationBean registration(MyFilter filter) {
    FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter);
    registration.setEnabled(false);
    return registration;
}

Atas ialah kandungan terperinci Mengapa Penapis Spring saya Dikenakan Dua Kali Apabila Didaftarkan sebagai Kacang?. 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