2016-07-29 29 views
0

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

können Sie posten Sie Ihre applicationContext.xml aktiviert? – amicoderozer

+0

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. –

+0

Meine Vermutung war, dass Sie das '' aus der Datei applicationContext.xml oder Ihrer Konfigurationsklasse verpasst haben – amicoderozer

Antwort

0

Haben Sie geschrieben @Repository Anmerkung auf ProjectRepository

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

Sie sicherstellen, dass Sie JpaRepository auf Ihrer Konfiguration mit @EnableJpaRepositories

Verwandte Themen