获取:通过字段“ userRepository”表达的不满意的依赖性

时间:2018-10-03 00:19:25

标签: java

  

通过“ userRepository”字段表示的不满意依赖性

任何人都可以告诉我我所缺少或需要添加的内容吗?提前非常感谢!

这是我的项目结构的图片。

User.java

package org.codigo.entites;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User {

@Id
@GeneratedValue
private Long id;
private String fname;
private String lname;
public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}
public String getFname() {
    return fname;
}
public void setFname(String fname) {
    this.fname = fname;
}
public String getLname() {
    return lname;
}
public void setLname(String lname) {
    this.lname = lname;
}
public User(String fname, String lname) {
    this.fname = fname;
    this.lname = lname;
}
public User() {
}
@Override
public String toString() {
    return "User [id=" + id + ", fname=" + fname + ", lname=" + lname + "]";
}
}

UserRepository.java

package org.codigo.repositories;

import org.codigo.entites.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {

}

2 个答案:

答案 0 :(得分:2)

您的UserRepository是接口,您不能为接口创建bean

public interface UserRepository extends JpaRepository<User, Long>

UserRepository声明为具有方法实现的类,并使用@Repository注释进行注释,如果JpaRepository是接口,则应使用implements关键字

@Repository
public class UserRepository extends JpaRepository<User, Long>

答案 1 :(得分:1)

每当Spring说出Unsatisfied dependency时,它都不知道如何获取所需类型的实例。

要让Spring知道甚至实现您的存储库(仅是接口),您应该

@EnableJpaRepositories添加到MyAppApplication

@SpringBootApplication
@EnableJpaRepositories(basePackage = "org.codigo.repositories")
public class MyAppApplication implements CommandLineRunner { ... }

乍一看似乎很神奇-幕后,Spring将为您的存储库实例化一个动态代理,该代理将拦截所有方法调用,并根据被调用方法的名称,其参数和返回类型找出要执行的操作。

参考: