У меня есть 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();
}
Вы можете оставить свой applicationContext.xml? – amicoderozer
Я получил правильный путь от вас. Я создал класс AppConfig.java с @Configuration @EnableJpaRepositories ("com.project.data.spring_jpa.repositories") аннотации уровня класса и исключения. –
Я предполагаю, что вы пропустили ' ' из applicationContext.xml или ваш класс конфигурации –
amicoderozer