Ich habe spring-boot-starter-data-jpa
und spring-boot-starter-web
. Ich versuche, List<Project>
von mysql
mit Spring jpa
laden, aber BeanCreationException im Controller zu bekommen.BeanCreationException für Spring-Data-Jpa-Repository in der Steuerung
org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem Namen 'controller': Injektion der autowired Abhängigkeiten fehlgeschlagen; verschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Feld konnte nicht autowire: private com.project.data.spring_jpa.ProjectRepository com.project.application.Controller.repository; verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine berechtigende Bean des Typs [com.project.data.spring_jpa.ProjectRepository] gefunden für Abhängigkeit: erwartet mindestens 1 Bean, die sich als Autowire-Kandidat für diese Abhängigkeit qualifiziert. Dependency Anmerkungen: {@ 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();
}
können Sie posten Sie Ihre applicationContext.xml aktiviert? – amicoderozer
Ich habe richtigen Weg von dir. Ich habe die Klasse AppConfig.java mit @Configuration @EnableJpaRepositories ("com.project.data.spring_jpa.repositories") Annotationen und Ausnahmen auf Klassenebene erstellt. –
Meine Vermutung war, dass Sie das ' ' aus der Datei applicationContext.xml oder Ihrer Konfigurationsklasse verpasst haben –
amicoderozer