2016-07-29 5 views
0

У меня есть spring-boot-starter-data-jpa и spring-boot-starter-web. Я пытаюсь загрузить List<Project> из mysql используя Spring jpa, но получить ниже BeanCreationException в контроллере.BeanCreationException для хранилища Spring-data-jpa в контроллере

org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'controller': не удалось выполнить закачку зависимых от автозапуска; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: Не удалось autowire field: private com.project.data.spring_jpa.ProjectRepository com.project.application.Controller.repository; Вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не существует определяющего компонента типа [com.project.data.spring_jpa.ProjectRepository], найденного для зависимости: ожидается как минимум 1 компонент, который квалифицируется как кандидат autwire для этой зависимости. Зависимость от аннотаций: {@ org.springframework.beans.factory.annotation.Autowired (обязательно = истина)}

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

Вы можете оставить свой applicationContext.xml? – amicoderozer

+0

Я получил правильный путь от вас. Я создал класс AppConfig.java с @Configuration @EnableJpaRepositories ("com.project.data.spring_jpa.repositories") аннотации уровня класса и исключения. –

+0

Я предполагаю, что вы пропустили '' из applicationContext.xml или ваш класс конфигурации – amicoderozer

ответ

0

Вы пишете @Repository аннотация на ProjectRepository

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

ли убедитесь, что вы включили JpaRepository на конфигурации с помощью @EnableJpaRepositories

Смежные вопросы