Ralat: 'Medan memerlukan jenis kacang yang tidak ditemui' dalam Spring RESTful API menggunakan MongoDB
Apabila membangunkan API RESTful menggunakan Spring dengan penyepaduan MongoDB, anda mungkin menghadapi ralat:
Field userService in main.java.rest.UsersController required a bean of type 'main.java.service.UserService' that could not be found.
Penjelasan:
Ralat ini berlaku apabila konteks aplikasi Spring tidak dapat mencari kacang jenis yang ditentukan, yang dalam kes ini ialah UserService. Spring bean ialah objek yang boleh diuruskan oleh bekas IoC.
Punca Kemungkinan:
Penyelesaian 1: Menganotasi Kelas Perkhidmatan Pengguna
Tambahkan anotasi @Service pada Kelas UserService:
<code class="java">@Service public class UserService implements MongoRepository<User, String> { // ... }</code>
Penyelesaian 2: Menstrukturkan Semula Struktur Pakej
Pastikan kelas UserService berada dalam pakej atau subpakej yang sama dengan komponen yang sedang mengimbas dan menggunakan ia. Ini kerana Spring secara automatik mengimbas pakej semasa dan subpakejnya secara lalai.
Penyelesaian 3: Mengkonfigurasi Imbasan Komponen
Jika kelas UserService berada dalam pakej yang berbeza, anda boleh mengkonfigurasi imbasan komponen secara manual menggunakan anotasi @SpringBootApplication:
<code class="java">@SpringBootApplication(scanBasePackages = {"main.java.com.example.api", "main.java.com.example.service"}) public class Application { // ... }</code>
Dalam contoh ini, kedua-dua API dan pakej perkhidmatan akan diimbas untuk komponen beranotasi, termasuk kelas UserService.
Petua Tambahan:
Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \"Field userService memerlukan kacang jenis \'main.java.service.UserService\' yang tidak dapat ditemui\" dalam Spring RESTful API saya menggunakan MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!