Mengatasi Isu: 'Bidang Memerlukan Jenis Kacang Yang Tidak Dapat Ditemui'
Mesej ralat, "Field userService in main. java.rest.UsersController memerlukan kacang jenis 'main.java.service.UserService' yang tidak dapat ditemui," menunjukkan bahawa aplikasi Spring tidak dapat mencari kacang berdaftar jenis 'main.java.service.UserService'.
Punca:
Isu ini timbul apabila bekas Spring tidak dapat mengesan definisi kacang untuk jenis yang ditentukan. Beans biasanya ditakrifkan menggunakan anotasi seperti @Service, tetapi apabila menggunakan MongoDB dengan Spring, anda biasanya memanjangkan antara muka repositori daripada MongoRepository.
Penyelesaian:
Terdapat dua kemungkinan penyelesaian untuk menyelesaikan isu ini:
Penyelesaian 1: Penstrukturan Semula Struktur Projek
Pindahkan kelas UserService ke dalam pakej yang diimbas oleh bekas Spring. Secara lalai, Spring mengimbas semua pakej di bawah pakej asas di mana anotasi @SpringBootApplication diisytiharkan. Jika kelas utama anda berada dalam com.example.something, alihkan UserService ke com.example.something.service.
Penyelesaian 2: Menggunakan @ComponentScan
Tambah yang berikut baris ke kelas utama anda di mana anotasi @SpringBootApplication diisytiharkan:
<code class="java">@SpringBootApplication(scanBasePackages = { "com.example.something", // Your default scanned package "main.java.service" // The package containing the UserService class })</code>
Ini secara eksplisit akan memasukkan pakej "main.java.service" dalam proses pengimbasan kacang.
Atas ialah kandungan terperinci Mengapa Aplikasi Spring Saya Tidak Dapat Menemui Kacang Perkhidmatan Pengguna Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!