通过“ 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> {
}
答案 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将为您的存储库实例化一个动态代理,该代理将拦截所有方法调用,并根据被调用方法的名称,其参数和返回类型找出要执行的操作。
参考: