Java 获取错误“;应用程序启动失败";使用简单的Spring启动应用程序

Java 获取错误“;应用程序启动失败";使用简单的Spring启动应用程序,java,spring-boot,Java,Spring Boot,我遵循这一点,用Spring Boot构建了一个REST服务。一切编译都很好,但启动后我得到了这个错误 *************************** APPLICATION FAILED TO START *************************** Description: Field repo in com.pearlbit.ContactRestController required a bean of type 'com.pearlbit.Contact$Cont

我遵循这一点,用Spring Boot构建了一个REST服务。一切编译都很好,但启动后我得到了这个错误

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

Description:

Field repo in com.pearlbit.ContactRestController required a bean of type 'com.pearlbit.Contact$ContactRepository' that could not be found.


Action:

Consider defining a bean of type 'com.pearlbit.Contact$ContactRepository' in your configuration.
你知道怎么了吗

更新:

这是我的“联系人”类别代码

package com.pearlbit;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Document
public class Contact {


    public interface ContactRepository extends MongoRepository<Contact, String> {
        List<Contact> findByLastName(String lastName);
    }


    @Id
    private String id;
    private String firstName;
    private String lastName;
    private String address;
    private String phoneNumber;
    private String email;
    private String twitterHandle;
    private String facebookProfile;
    private String linkedInProfile;
    private String googlePlusProfile;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTwitterHandle() {
        return twitterHandle;
    }

    public void setTwitterHandle(String twitterHandle) {
        this.twitterHandle = twitterHandle;
    }

    public String getFacebookProfile() {
        return facebookProfile;
    }

    public void setFacebookProfile(String facebookProfile) {
        this.facebookProfile = facebookProfile;
    }

    public String getLinkedInProfile() {
        return linkedInProfile;
    }

    public void setLinkedInProfile(String linkedInProfile) {
        this.linkedInProfile = linkedInProfile;
    }

    public String getGooglePlusProfile() {
        return googlePlusProfile;
    }

    public void setGooglePlusProfile(String googlePlusProfile) {
        this.googlePlusProfile = googlePlusProfile;
    }

}
package com.pearlbit;
导入org.springframework.data.annotation.Id;
导入org.springframework.data.mongodb.core.mapping.Document;
导入org.springframework.data.mongodb.repository.MongoRepository;
导入org.springframework.data.repository.query.Param;
导入org.springframework.stereotype.Repository;
导入java.util.List;
@文件
公共类联系人{
公共接口ContactRepository扩展了MongoRepository{
列出findByLastName(字符串lastName);
}
@身份证
私有字符串id;
私有字符串名;
私有字符串lastName;
私有字符串地址;
私有字符串电话号码;
私人字符串电子邮件;
私有字符串twitterHandle;
私有字符串facebookProfile;
私有字符串LinkedIn配置文件;
私有字符串googlePlusProfile;
公共字符串getId(){
返回id;
}
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getFirstName(){
返回名字;
}
public void setFirstName(字符串firstName){
this.firstName=firstName;
}
公共字符串getLastName(){
返回姓氏;
}
public void setLastName(字符串lastName){
this.lastName=lastName;
}
公共字符串getAddress(){
回信地址;
}
公共无效设置地址(字符串地址){
this.address=地址;
}
公共字符串getPhoneNumber(){
返回电话号码;
}
public void setPhoneNumber(字符串phoneNumber){
this.phoneNumber=电话号码;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共字符串getTwitterHandle(){
返回推特句柄;
}
公共void setTwitterHandle(字符串twitterHandle){
this.twitterHandle=twitterHandle;
}
公共字符串getFacebookProfile(){
返回facebookProfile;
}
公共void setFacebookProfile(字符串facebookProfile){
this.facebookProfile=facebookProfile;
}
公共字符串getLinkedInProfile(){
返回linkedInProfile;
}
public void setLinkedInProfile(字符串linkedInProfile){
this.linkedInProfile=linkedInProfile;
}
公共字符串getGooglePlusProfile(){
返回googlePlusProfile;
}
公共无效设置googlePlusProfile(字符串googlePlusProfile){
this.googlePlusProfile=谷歌plusProfile;
}
}

我已经包括了MongoRepository的界面,但它仍然给了我同样的问题。这是否需要添加到其他地方?

可能您正在使用的bean类型是Contact$ContactRepository,但您尚未创建它,您应该首先注册此类型的bean。如果您使用的是spring boot,您可以通过添加JPA starter来扩展JPA存储库接口来完成此操作;
package hello;

import java.util.List;

import org.springframework.data.repository.CrudRepository;

public interface ContactRepositoryextends ContactRepository<Contact, Long> {
    List<Customer> findByLastName(String lastName);
}
导入java.util.List; 导入org.springframework.data.repository.crudepository; 公共接口ContactRepository扩展ContactRepository{ 列出findByLastName(字符串lastName); }
试试这个。您的存储库将由spring自动实现。

您可以发布一个示例吗?或者你能解释一下为什么你认为是这样吗?我有一个例子,这是我的模型课。公共接口ContactRepository扩展MongoRepository{}它属于那里还是其他地方?嵌套在Componet类中的接口。您可以尝试将接口提取到单独的java文件中,并添加@RepositoryThis是正确的。我的问题是我没有把这个单独归档。