Mesej ralat "Field memerlukan kacang jenis yang tidak dapat ditemui" menunjukkan bahawa Spring tidak dapat mencari kacang yang diperlukan untuk suntikan pergantungan. Ini boleh berlaku apabila kacang tidak dikonfigurasikan atau didaftarkan dengan betul dalam konteks aplikasi Spring.
Dalam kes ini, ralat menunjukkan kebergantungan UserService dalam kelas UsersController. Antara muka UserService diisytiharkan dalam pakej perkhidmatan, tetapi ia tidak didaftarkan sebagai bean dalam mana-mana fail konfigurasi.
Untuk menangani ralat ini, antara muka UserService mesti didaftarkan sebagai bean. Ini boleh dicapai dalam beberapa cara:
1. Menggunakan Kelas @Configuration:
Buat kelas konfigurasi khusus dan anotasikannya dengan @Configuration. Di dalam kelas, tentukan definisi kacang untuk UserService menggunakan anotasi @Bean.
<code class="java">@Configuration public class ServiceConfig { @Bean public UserService userService() { return new UserServiceImpl(); } }</code>
2. Menggunakan Definisi Kacang XML:
Tentukan definisi kacang dalam fail konfigurasi XML bernama Beans.xml yang terletak di bawah direktori src/main/resources.
<code class="xml"><beans> <bean id="userService" class="main.java.service.UserServiceImpl" /> </beans></code>
3 . Menggunakan @SpringBootApplication(scanBasePackages) Anotasi:
Dalam kelas aplikasi utama yang dianotasi dengan @SpringBootApplication, gunakan atribut scanBasePackages untuk menentukan pakej di mana definisi kacang terletak.
<code class="java">@SpringBootApplication(scanBasePackages={"main.java.service"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }</code>
4. Menyemak Struktur Pakej:
Jika kacang terletak dalam modul atau pakej lain di luar laluan pengimbasan lalai, pertimbangkan untuk menstruktur semula projek untuk memastikan pakej kacang disertakan dalam imbasan. Alihkan antara muka dan pelaksanaan UserService ke pakej kongsi yang boleh diakses oleh kedua-dua pengawal dan modul perkhidmatan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Missing Bean\' dalam Spring RESTful API dengan MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!