Apabila cuba untuk mengintegrasikan MongoDB dengan Spring RESTful API, pengguna mungkin menghadapi ralat "'Field memerlukan jenis kacang yang tidak dapat ditemui.'" Ralat ini menunjukkan bahawa aplikasi Spring tidak dapat mencari kacang penting, dalam kes ini, kacang UserService.
The ralat timbul daripada cara Spring mengimbas komponen dalam projek. Secara lalai, Spring mengimbas komponen dalam pakej beranotasi dengan @SpringBootApplication. Dalam kes ini, kelas UsersController, yang bergantung pada UserService, terletak di luar laluan imbasan lalai.
Untuk menyelesaikan isu ini, terdapat dua pendekatan utama:
Pendekatan 1 : Sesuaikan Pengimbasan Pakej
Tentukan secara manual pakej yang perlu diimbas untuk komponen menggunakan anotasi @SpringBootApplication(scanBasePackages={...}). Dalam kes ini, tambahkan baris berikut pada kelas aplikasi utama:
<code class="java">@SpringBootApplication(scanBasePackages={"main.java.service", "main.java.rest"})</code>
Ini akan mengarahkan Spring untuk mengimbas kedua-dua perkhidmatan dan pakej rehat untuk komponen.
Pendekatan 2: Susun Semula Struktur Pakej
Sebagai alternatif, susun semula struktur pakej projek untuk memastikan semua komponen yang berkaitan berada dalam pakej yang sama. Dalam kes ini, susun semula projek seperti berikut:
src/ ├── main/ │ └── java/ | └── com.example/ | | ├── Application.java | | ├── model/ | | | └── User.java | | ├── rest/ | | | ├── IndexController.java | | | └── UsersController.java | | ├── service/ | | | └── UserService.java └── resources/ └── application.properties
Ini akan memastikan semua komponen yang berkaitan dengan UserService berada dalam pakej yang sama dan Spring akan mengimbasnya secara automatik.
Atas ialah kandungan terperinci Mengapa saya mendapat ralat \"Field memerlukan jenis kacang yang tidak dapat ditemui\" dalam Spring RESTful API saya dengan MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!