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.
Untuk menyelesaikan isu ini, pertimbangkan untuk melaksanakan salah satu pendekatan berikut:
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.
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!