Rumah  >  Artikel  >  Java  >  Mengapakah saya mendapat ralat \"Field userService memerlukan kacang jenis \'main.java.service.UserService\' yang tidak dapat ditemui\" dalam Spring RESTful API saya menggunakan MongoDB?

Mengapakah saya mendapat ralat \"Field userService memerlukan kacang jenis \'main.java.service.UserService\' yang tidak dapat ditemui\" dalam Spring RESTful API saya menggunakan MongoDB?

Susan Sarandon
Susan Sarandonasal
2024-11-02 13:29:30481semak imbas

Why am I getting the

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:

  • Kelas UserService tidak dianotasi dengan Anotasi musim bunga yang menjadikannya kacang.
  • Kelas UserService tidak berada dalam pakej yang sama atau subpakej komponen yang sedang mengimbas dan menggunakannya.
  • Konfigurasi imbasan komponen tidak dikonfigurasikan dengan betul.

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:

  • Sahkan bahawa kelas UserService dilaksanakan dengan betul.
  • Semak sama ada fail applicationContext.xml atau konfigurasi konteks aplikasi yang berkaitan adalah betul.
  • Pastikan sifat sambungan MongoDB dikonfigurasikan dengan betul dalam application.properties.
  • Mulakan semula aplikasi selepas membuat sebarang perubahan pada konfigurasi.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn