2016-07-29 4 views
0

나는 spring-boot-starter-data-jpaspring-boot-starter-web을가집니다. 내가 부하 List<Project>mysql에서 Spring jpa를 사용하여 시도하지만 컨트롤러에서 BeanCreationException을 주저하십시오.컨트롤러의 Spring-data-jpa 저장소에 대한 BeanCreationException

org.springframework.beans.factory.BeanCreationException : 'controller'라는 이름의 bean 작성 중 오류 발생 : 자동 종속 종속성 삽입에 실패했습니다. 중첩 예외는 org.springframework.beans.factory.BeanCreationException : 필드를 autowire 수 없습니다 : 개인 com.project.data.spring_jpa.ProjectRepository com.project.application.Controller.repository; 중첩 예외는 org.springframework.beans.factory.NoSuchBeanDefinitionException : [com.project.data.spring_jpa.ProjectRepository] 유형의 적격 bean이 종속성에 대해 발견되지 않았습니다.이 종속성에 대한 autowire 후보로 적합한 적어도 하나의 bean이 필요합니다. 종속성 주석 :

Controller.java {org.springframework.beans.factory.annotation.Autowired @는 (= TRUE 필수)} :

... 
@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(); 
} 
+0

당신이 당신의 applicationContext.xml을 게시 할 수 있습니다 사용 구성에 JpaRepository를 사용할 수 있는지 확인합니까? – amicoderozer

+0

나는 당신에게서 올바른 길을 얻었습니다. @Configuration으로 AppConfig.java 클래스를 만들었습니다. @EnableJpaRepositories ("com.project.data.spring_jpa.repositories") 클래스 수준의 주석과 예외는 사라졌습니다. –

+0

내 생각 엔 applicationContext.xml 또는 구성 클래스에서' amicoderozer

답변

0

당신은 @Repository annotation on ProjectRepository

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

@EnableJpaRepositories