Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah Java Parameter 0 pembina dalam com.example.demo.service.UserServiceImpl memerlukan kacang jenis 'com.example.demo.dao.UserDao'

Parameter 0 pembina dalam com.example.demo.service.UserServiceImpl memerlukan kacang jenis 'com.example.demo.dao.UserDao'

Feb 08, 2024 pm 10:09 PM
rangka kerja musim bunga

Semasa proses pembangunan, kami sering menghadapi pelbagai ralat dan pengecualian. Salah satu masalah biasa ialah apabila menggunakan rangka kerja Spring, anda menghadapi sesuatu yang serupa dengan "Parameter 0 pembina dalam com.example.demo.service.UserServiceImpl memerlukan kacang jenis "com.example.demo.dao.UserDao" " mesej ralat. Mesej ralat ini bermakna bahawa dalam pembina kelas UserServiceImpl, parameter pertama perlu disuntik dengan kacang jenis UserDao, tetapi sistem tidak dapat mencari kacang yang sepadan. Terdapat banyak cara untuk menyelesaikan masalah ini, dan artikel ini akan memperkenalkan anda kepada penyelesaian yang mudah dan berkesan.

Kandungan soalan

Siapa yang boleh membantu saya nyahpepijat ralat ini

parameter 0 of constructor in com.example.demo.service.userserviceimpl required a 
bean of type 'com.example.demo.dao.userdao' that could not be found.

action:

consider defining a bean of type 'com.example.demo.dao.userdao' in your configuration.
Salin selepas log masuk

Berikut ialah fail saya:

usercontroller.java

package com.example.demo.controller;

import com.example.demo.model.user;
import com.example.demo.service.userservice;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.*;

import java.util.list;

@restcontroller
@requestmapping("/api/users")
public class usercontroller {

    @autowired
    private final userservice userservice;
    
    public usercontroller(userservice userservice) {
        this.userservice = userservice;
    }

    @getmapping("/{userid}")
    public user getuserbyid(@pathvariable long userid) {
        return userservice.getuserbyid(userid);
    }

    @getmapping
    public list<user> getallusers() {
        return userservice.getallusers();
    }

    @postmapping
    public long adduser(@requestbody user user) {
        return userservice.adduser(user);
    }

    @putmapping("/{userid}")
    public void updateuser(@pathvariable long userid, @requestbody user user) {
        user.setuserid(userid);
        userservice.updateuser(user);
    }

    @deletemapping("/{userid}")
    public void deleteuser(@pathvariable long userid) {
        userservice.deleteuser(userid);
    }
}
Salin selepas log masuk

userservice.java

package com.example.demo.service;

import com.example.demo.model.user;
import org.springframework.stereotype.component;
import org.springframework.stereotype.service;

import java.util.list;

public interface userservice {
    user getuserbyid(long userid);

    list<user> getallusers();

    long adduser(user user);

    void updateuser(user user);

    void deleteuser(long userid);
}
Salin selepas log masuk

userserviceimpl.java

package com.example.demo.service;

import com.example.demo.dao.userdao;
import com.example.demo.model.user;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;

import java.util.list;

@service
public class userserviceimpl implements userservice {
    
    private final userdao userdao;

    @autowired
    public userserviceimpl(userdao userdao) {
        this.userdao = userdao;
    }

    @override
    public user getuserbyid(long userid) {
        return userdao.getuserbyid(userid);
    }

    @override
    public list<user> getallusers() {
        return userdao.getallusers();
    }

    @override
    public long adduser(user user) {
        return userdao.adduser(user);
    }

    @override
    public void updateuser(user user) {
        userdao.updateuser(user);
    }

    @override
    public void deleteuser(long userid) {
        userdao.deleteuser(userid);
    }
}
Salin selepas log masuk

userdaoimpl.java

package com.example.demo.dao;

import com.example.demo.model.user;
import org.springframework.jdbc.core.beanpropertyrowmapper;
import org.springframework.jdbc.core.jdbctemplate;
import org.springframework.stereotype.repository;

import java.util.list;

@repository
public class userdaoimpl implements userdao {

    private final jdbctemplate jdbctemplate;

    public userdaoimpl(jdbctemplate jdbctemplate) {
        this.jdbctemplate = jdbctemplate;
    }

    @override
    public user getuserbyid(long userid) {
        string sql = "select * from user where user_id = ?";
        return jdbctemplate.queryforobject(sql, new object[]{userid}, new beanpropertyrowmapper<>(user.class));
    }

    @override
    public list<user> getallusers() {
        string sql = "select * from user";
        return jdbctemplate.query(sql, new beanpropertyrowmapper<>(user.class));
    }

    @override
    public long adduser(user user) {
        string sql = "insert into user (first_name, last_name, email, user_avatar_url, podcast_id) " +
                "values (?, ?, ?, ?, ?)";
        jdbctemplate.update(sql, user.getfirstname(), user.getlastname(), user.getemail(),
                user.getuseravatarurl(), user.getpodcastid());

        // retrieve the auto-generated user_id
        return jdbctemplate.queryforobject("select last_insert_id()", long.class);
    }

    @override
    public void updateuser(user user) {
        string sql = "update user set first_name = ?, last_name = ?, email = ?, " +
                "user_avatar_url = ?, podcast_id = ? where user_id = ?";
        jdbctemplate.update(sql, user.getfirstname(), user.getlastname(), user.getemail(),
                user.getuseravatarurl(), user.getpodcastid(), user.getuserid());
    }

    @override
    public void deleteuser(long userid) {
        string sql = "delete from user where user_id = ?";
        jdbctemplate.update(sql, userid);
    }
}
Salin selepas log masuk

userdao.java

package com.example.demo.dao;
import com.example.demo.model.user;

import java.util.list;

public interface userdao {
    user getuserbyid(long userid);

    list<user> getallusers();

    long adduser(user user);

    void updateuser(user user);

    void deleteuser(long userid);
}
Salin selepas log masuk

demoapplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
//@ComponentScan("com.example.demo.service")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
Salin selepas log masuk

Saya mencuba @componentscan("com.example.demo.service") dalam demoapplication.java tetapi ia tidak berfungsi.

Saya juga cuba meletakkan @autowire dan menandakan perkhidmatan dengan @service. Saya juga menyemak semua komen lain dan tidak menemui apa-apa lagi yang hilang

Saya mahu binaan yang bersih dan akses kepada api

Ralat

Penyelesaian

Anda kehilangan pelaksanaan semasa userservice 的实现。如果您想保留 @repository (userdao), maka anda boleh menulis semula perkhidmatan anda seperti berikut:

@Service
public class UserService {

    private final UserDao userDao;

    @Autowired
    public UserService(UserDao userDao) {
        this.userDao = userDao;
    }

    // implement using your DAO
    User getUserById(Long userId);
    List<User> getAllUsers();
    Long addUser(User user);
    void updateUser(User user);
    void deleteUser(Long userId);
}
Salin selepas log masuk

Ini sepatutnya menjadikannya tersedia untuk usercontroller untuk digunakan.

Atas ialah kandungan terperinci Parameter 0 pembina dalam com.example.demo.service.UserServiceImpl memerlukan kacang jenis 'com.example.demo.dao.UserDao'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan Spring Boot dan Spring AI untuk membina aplikasi kecerdasan buatan generatif Gunakan Spring Boot dan Spring AI untuk membina aplikasi kecerdasan buatan generatif Apr 28, 2024 am 11:46 AM

Sebagai peneraju industri, Spring+AI menyediakan penyelesaian terkemuka untuk pelbagai industri melalui API yang berkuasa, fleksibel dan fungsi lanjutannya. Dalam topik ini, kami akan menyelidiki contoh aplikasi Spring+AI dalam pelbagai bidang Setiap kes akan menunjukkan cara Spring+AI memenuhi keperluan khusus, mencapai matlamat dan meluaskan LESSONSLEARNED ini kepada rangkaian aplikasi yang lebih luas. Saya harap topik ini dapat memberi inspirasi kepada anda untuk memahami dan menggunakan kemungkinan Spring+AI yang tidak terhingga dengan lebih mendalam. Rangka kerja Spring mempunyai sejarah lebih daripada 20 tahun dalam bidang pembangunan perisian, dan sudah 10 tahun sejak versi Spring Boot 1.0 dikeluarkan. Sekarang, tiada siapa boleh mempertikaikan Spring itu

Ubah suai RequestBody dalam gerbang musim bunga Ubah suai RequestBody dalam gerbang musim bunga Feb 09, 2024 pm 07:15 PM

Saya ingin mengubah suai badan permintaan sebelum menghalakannya ke uri yang diberikan. Ubah suai kandungan berdasarkan dokumentasi yang saya gunakan org.springframework.cloud.gateway.filter.factory.rewrite.modifyrequestbodygatewayfilterfactory. Apabila memulakan pelayan saya, pelayan gagal bermula dengan sebab ralat berikut: Elemen [spring.cloud.gateway.routes[0].filters[0].modifyrequestbody.class] tidak terikat. \n\nOperasi:\

JAX-RS lwn. Spring MVC: Pertempuran antara gergasi RESTful JAX-RS lwn. Spring MVC: Pertempuran antara gergasi RESTful Feb 29, 2024 pm 05:16 PM

Pengenalan API RESTful telah menjadi sebahagian daripada aplikasi WEB moden. Mereka menyediakan pendekatan piawai untuk mencipta dan menggunakan perkhidmatan Web, dengan itu meningkatkan kemudahalihan, kebolehskalaan dan kemudahan penggunaan. Dalam ekosistem Java, JAX-RS dan springmvc ialah dua rangka kerja yang paling popular untuk membina API RESTful. Artikel ini akan melihat secara mendalam kedua-dua rangka kerja, membandingkan ciri, kelebihan dan keburukannya untuk membantu anda membuat keputusan termaklum. JAX-RS: JAX-RSAPI JAX-RS (JavaAPI untuk Perkhidmatan Web RESTful) ialah JAX-RSAPI standard yang dibangunkan oleh JavaEE untuk membangunkan REST

Mengoptimumkan pengelogan program: Berkongsi petua tentang menetapkan tahap log log4j Mengoptimumkan pengelogan program: Berkongsi petua tentang menetapkan tahap log log4j Feb 20, 2024 pm 02:27 PM

Mengoptimumkan pengelogan program: Petua untuk menetapkan tahap log log4j Ringkasan: Pengelogan program memainkan peranan penting dalam penyelesaian masalah, penalaan prestasi dan pemantauan sistem. Artikel ini akan berkongsi petua tentang menetapkan tahap log log4j, termasuk cara menetapkan tahap log yang berbeza dan cara menggambarkan proses tetapan melalui contoh kod. Pengenalan: Dalam pembangunan perisian, pembalakan adalah tugas yang sangat penting. Dengan merekodkan maklumat penting semasa proses menjalankan program, ia boleh membantu pembangun mengetahui punca masalah dan melakukan pengoptimuman prestasi dan pemantauan sistem.

Pemahaman mendalam tentang seni bina dan prinsip kerja rangka kerja Spring Pemahaman mendalam tentang seni bina dan prinsip kerja rangka kerja Spring Jan 24, 2024 am 09:41 AM

Analisis mendalam tentang seni bina dan prinsip kerja rangka kerja Spring Pengenalan: Spring ialah salah satu rangka kerja sumber terbuka yang paling popular dalam ekosistem Java Ia bukan sahaja menyediakan set pengurusan kontena dan fungsi suntikan pergantungan yang berkuasa, tetapi juga menyediakan banyak fungsi lain, seperti urus niaga, AOP, akses data, dll. Artikel ini akan memberikan analisis mendalam tentang seni bina dan prinsip kerja rangka kerja Spring, dan menerangkan konsep berkaitan melalui contoh kod tertentu. 1. Konsep teras rangka kerja Spring 1.1IoC (Penyongsangan Kawalan) Teras Spring

Penjelasan terperinci tentang kaedah sambungan pangkalan data Oracle Penjelasan terperinci tentang kaedah sambungan pangkalan data Oracle Mar 08, 2024 am 08:45 AM

Penjelasan terperinci tentang kaedah sambungan pangkalan data Oracle Dalam pembangunan aplikasi, sambungan pangkalan data adalah pautan yang sangat penting, yang membawa interaksi data antara aplikasi dan pangkalan data. Pangkalan data Oracle ialah sistem pengurusan pangkalan data hubungan dengan fungsi berkuasa dan prestasi yang stabil Dalam pembangunan sebenar, kita perlu mahir dalam kaedah sambungan yang berbeza untuk berinteraksi dengan pangkalan data Oracle. Artikel ini akan memperkenalkan secara terperinci beberapa kaedah sambungan biasa pangkalan data Oracle dan menyediakan contoh kod yang sepadan untuk membantu pembaca memahami dan menggunakan dengan lebih baik.

Rahsia Java JNDI dan Integrasi Spring: Mendedahkan Kerjasama Lancar Java JNDI dan Rangka Kerja Spring Rahsia Java JNDI dan Integrasi Spring: Mendedahkan Kerjasama Lancar Java JNDI dan Rangka Kerja Spring Feb 25, 2024 pm 01:10 PM

Kelebihan menyepadukan JavaJNDI dengan spring Penyepaduan JavaJNDI dengan kerangka Spring mempunyai banyak kelebihan, termasuk: Memudahkan penggunaan JNDI: Spring menyediakan lapisan abstraksi yang memudahkan penggunaan JNDI tanpa menulis kod JNDI yang kompleks. Pengurusan berpusat sumber JNDI: Spring boleh mengurus sumber JNDI secara berpusat untuk carian dan pengurusan yang mudah. Menyokong berbilang pelaksanaan JNDI: Spring menyokong berbilang pelaksanaan JNDI, termasuk JNDI, JNP, RMI, dsb. Mengintegrasikan rangka kerja Spring dengan lancar: Spring disepadukan dengan sangat rapat dengan JNDI dan disepadukan dengan lancar dengan rangka kerja Spring. Bagaimana untuk mengintegrasikan JavaJNDI dengan rangka kerja Spring untuk mengintegrasikan Ja

Penggunaan mekanisme refleksi Java dalam rangka kerja Spring? Penggunaan mekanisme refleksi Java dalam rangka kerja Spring? Apr 15, 2024 pm 02:03 PM

Mekanisme refleksi Java digunakan secara meluas dalam rangka kerja Spring untuk aspek berikut: Suntikan ketergantungan: instantiating kacang dan suntikan kebergantungan melalui refleksi. Penukaran jenis: Tukar parameter permintaan kepada jenis parameter kaedah. Penyepaduan rangka kerja kegigihan: memetakan kelas entiti dan jadual pangkalan data. Sokongan AspectJ: memintas panggilan kaedah dan meningkatkan tingkah laku kod. Proksi Dinamik: Cipta objek proksi untuk meningkatkan kelakuan objek asal.