当前位置: 首页 > 知识库问答 >
问题:

存储库中缺少bean

曹成双
2023-03-14

我的应用程序无法启动,因为spring看不到bean。

我试图运行mu应用程序,并添加创建的用户到数据库。我不知道如何创建丢失的bean。我发现界面上方必须有注释@repository,所以我放置了它,但它仍然不起作用。

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDate;

@Entity
public class User implements Serializable, UserInterface {

private static final long serialVersionUID = 8062231146287834334L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String login;
@Column
private String password;
@Column
private String email;
@Column
private Long phoneNumber;
@Column
private String firstName;
@Column
private String lastName;
@Column
private LocalDate dateOfBirth;
@Column
private String address;
@Column
private String city;
@Column
private String zipCode;

public User() {
    //constructor for hibernate
}

private User(String login, String password, String email, Long     phoneNumber, String firstName,
             String lastName, LocalDate dateOfBirth, String address,     String city, String zipCode) {

    this.login = login;
    this.password = password;
    this.email = email;
    this.phoneNumber = phoneNumber;
    this.firstName = firstName;
    this.lastName = lastName;
    this.dateOfBirth = dateOfBirth;
    this.address = address;
    this.city = city;
    this.zipCode = zipCode;
}

@Override
public String getLogin() {
    return login;
}

@Override
public String getPassword() {
    return password;
}

@Override
public String getEmail() {
    return email;
}

@Override
public Long getPhoneNumber() {
    return phoneNumber;
}

@Override
public String getFirstName() {
    return firstName;
}

@Override
public String getLastName() {
    return lastName;
}

@Override
public LocalDate getDateOfBirth() {
    return dateOfBirth;
}

@Override
public String getAddress() {
    return address;
}

@Override
public String getCity() {
    return city;
}

@Override
public String getZipCode() {
    return zipCode;
}

@Override
public String toString() {
    return "User{" +
            "login='" + login + '\'' +
            ", password='" + password + '\'' +
            ", email='" + email + '\'' +
            ", phoneNumber=" + phoneNumber +
            ", firstName='" + firstName + '\'' +
            ", lastName='" + lastName + '\'' +
            ", dateOfBirth=" + dateOfBirth +
            ", address='" + address + '\'' +
            ", city='" + city + '\'' +
            ", zipCode='" + zipCode + '\'' +
            '}';
}
public static class UserBuilder {

    private String login;
    private String password;
    private String email;
    private Long phoneNumber;
    private String firstName;
    private String lastName;
    private LocalDate dateOfBirth;
    private String address;
    private String city;
    private String zipCode;

    public UserBuilder setUserLogin(String login) {
        this.login = login;
        return this;
    }

    public UserBuilder setUserPassword(String password) {
        this.password = password;
        return this;
    }

    public UserBuilder setUserEmail(String email) {
        this.email = email;
        return this;
    }

    public UserBuilder setUserPhoneNumber(Long phoneNumber) {
        this.phoneNumber = phoneNumber;
        return this;
    }

    public UserBuilder setUserFirstName(String firstName) {
        this.firstName = firstName;
        return this;
    }

    public UserBuilder setUserLastName(String lastName) {
        this.lastName = lastName;
        return this;
    }

    public UserBuilder setUserDateOfBirth(String dateOfBirth) {
        this.dateOfBirth = LocalDate.parse(dateOfBirth);
        return this;
    }

    public UserBuilder setUserAddress(String address) {
        this.address = address;
        return this;
    }

    public UserBuilder setUserCity(String city) {
        this.city = city;
        return this;
    }

    public UserBuilder setUserZipCode(String zipCode) {
        this.zipCode = zipCode;
        return this;
    }

    public User build() {
        boolean isAllFielsdAreFull = login != null && password != null && email != null
                && phoneNumber != null && firstName != null
                && lastName != null && dateOfBirth != null && address != null
                && city != null && zipCode != null;

        if (isAllFielsdAreFull) {
            return new User(login, password, email, phoneNumber, firstName, lastName, dateOfBirth, address, city, zipCode);
        } else {
            throw new RuntimeException("Some fields are null!");
        }
    }

}

}
package wawer.kamil.library;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import wawer.kamil.library.domain.User;

@Repository
public interface UserRepo extends JpaRepository<User, Long> {
}
package wawer.kamil.library;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Controller;
import wawer.kamil.library.domain.User;

@Controller 
public class Start {

private UserRepo userRepo;

@Autowired
public Start(UserRepo userRepo) {
    this.userRepo = userRepo;
}

@EventListener(ApplicationReadyEvent.class)
public void run() {
    User user = new User.UserBuilder()
            .setUserLogin("Mareczek")
            .setUserPassword("Mareczek3@")
            .setUserEmail("mareczek@gmail.com")
            .setUserPhoneNumber(515791468L)
            .setUserFirstName("Marek")
            .setUserLastName("Kowalski")
            .setUserDateOfBirth("1990-12-12")
            .setUserAddress("Kowalska 12")
            .setUserCity("Lublin")
            .setUserZipCode("20-123")
            .build();

    userRepo.save(user);

}
}


spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://0.0.0.0:32768/library
?serverTimezone=Europe/Warsaw
spring.datasource.username=root
spring.datasource.password=root
package wawer.kamil.library;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LibraryApplication {

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

}
Error starting ApplicationContext. To display the conditions report re-run     your application with 'debug' enabled.
2019-06-10 11:19:30.771 ERROR 6282 --- [           main]     o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in wawer.kamil.library.Start required a bean of type 'wawer.kamil.library.UserRepo' that could not be found.


Action:

Consider defining a bean of type 'wawer.kamil.library.UserRepo' in your configuration.


Process finished with exit code 1

我想运行我的应用程序,并添加用户到数据库。

共有1个答案

汝弘深
2023-03-14

您需要启用存储库

@SpringBootApplication
@EnableJpaRepositories // this will fix the issue
public class LibraryApplication {

public static void main(String[] args) {
    SpringApplication.run(LibraryApplication.class, args);
}
 类似资料:
  • 我已经实现了一个小用例来评估Spring Data Neo4j。我有一个接口,它扩展了GraphRepository。 界面是这样的: 这给了我错误< code >“类型PublicRepository的层次结构不一致”。 这种类型的错误是因为当前类扩展/实现的类/接口之一不存在,而当前类又在扩展/实现另一个类/接口。 查看核心库的包我发现库中没有扩展为CRUDRepository的接口。我在Ne

  • 大家好, 我正在尝试实现PACT JS。目前我指的是这个实施: 有人能帮帮我吗?威尔逊·马汉

  • 我试着去学习这个教程,但是我遇到了导入的问题。

  • 问题内容: 我想intigrate 并进入我的Maven的webapp尝试与地狱世界。不幸的是,Jersey和Grizzly的依赖关系很麻烦,无法正常工作。 我尝试删除该文件夹,因为我认为该文件夹可能已损坏而没有帮助。我添加了其他依赖项,例如jsoup,效果很好。实际上,它在日志中是从存储库下载jersey- server的,因此它不是网络问题。 有谁能够帮我?我真的被卡住了! 我的Eclipse

  • 我正在重新设计我们公司的API以使用来自SQL Server的Snowflake。我们的第一个直接障碍是现有的SQL Server存储过程返回表输出,而Snowflake不允许这种类型的输出。我不想完全重新设计一切,所以我在想: null 我知道对于编码来说,使用python这样的东西会容易得多,但是,我不想维护另一个python应用程序,只用于在Snowflake中检索数据。