首页 文章

控制器中Spring-data-jpa存储库的BeanCreationException

提问于
浏览
0

我有 spring-boot-starter-data-jpaspring-boot-starter-web . 我尝试使用 Spring jpamysql 加载 List<Project> 但是在控制器中看到BeanCreationException .

org.springframework.beans.factory.BeanCreationException:创建名为'controller'的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private com.project.data.spring_jpa.ProjectRepository com.project.application.Controller.repository;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到[com.project.data.spring_jpa.ProjectRepository]类型的限定bean用于依赖:预期至少有1个bean有资格作为此依赖项的autowire候选者 . 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}

Controller.java:

...
@RestController
public class Controller {

    ...

    @Autowired 
    private ProjectRepository repository;


    private ProjectAccessor projectAccessor = manager.createAccessor(ProjectAccessor.class);

    public void setRepository(ProjectRepository repository){
        this.repository = repository;
    }

    @RequestMapping("/test")
    @ResponseBody
    public List<Project> test() {


        System.out.println("mysql test");

        return repository.findAll();
    }

    ...

ProjectRepository.java:

public interface ProjectRepository extends CrudRepository<Project, Long>{
     List<Project> findAll();
}

1 回答

  • 0

    你在 ProjectRepository 上写了 @Repository 注释吗?

    @Repository
    public interface ProjectRepository extends CrudRepository<Project, Long>{
         List<Project> findAll();
    }
    

    确保使用 @EnableJpaRepositories 在配置上启用了JpaRepository

相关问题