Rumah  >  Artikel  >  Java  >  Mengapa Aplikasi Spring Saya Tidak Dapat Menemui Kacang Perkhidmatan Pengguna Saya?

Mengapa Aplikasi Spring Saya Tidak Dapat Menemui Kacang Perkhidmatan Pengguna Saya?

DDD
DDDasal
2024-11-02 09:33:31530semak imbas

Why Can't My Spring Application Find My UserService Bean?

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!

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