0

J'ai créé un projet à partir de this Spring Data example. J'ai déplacé ItemRepository et EmployeeRepository vers un autre package persistence. Maintenant, quand je lance l'application avec mvn spring-boot:run il se plaint qu'il ne peut pas les trouver.Bean requis introuvable lors du déplacement vers un autre package lors de l'exécution de l'application Spring Boot avec maven

Field employeeRepository in test.Application required a bean of type 'test.persistence.EmployeeRepository' that could not be found. 

Il se charge normalement si je lance l'application principale.

Pourquoi cela se produit-il?

+0

@JBNizet Il dit que les emballages spécifiques _Si ne sont pas définis, la numérisation se produira à partir du package de la classe qui déclare ce annotation._ Puisque je ne spécifie aucun paquet, il devrait commencer par mon paquet 'test', où se trouve la classe principale. Les beans sont dans 'test.persistence'. – garci560

+0

Oh, vous avez raison. Désolé je lis trop vite. –

+0

'mvn clean package' puis' mvn spring-boot: run'. –

Répondre

0

Vous devez vérifier les 2 prochaines annotations nécessaires pour définir où se trouvent tous les dépôts à l'intérieur de votre ptoject. Probablement vous avez l'ancienne route de paquet et ne peux pas trouver les classes maintenant.

//Package where you store all yours repositories 
@EnableJpaRepositories(basePackages = { "com.your.path.persistence" }) 

//package where you store all yours Entities 
@EntityScan(basePackages = { "com.your.path.domain" }) 
+0

'@ EnableJpaRepositories' n'a rien à voir avec Spring Boot, il provient du projet Spring Data JPA. –

+0

@ M.Deinum À droite, EntityScan était celui inclus dans les paquets sprong-boot pour autoconfigure. – cralfaro

0

Voici comment votre classe principale devrait ressembler à:

@SpringBootApplication 
@ComponentScan({"test.persistence"}) 
public class Application { 
    /** 
    * @param args 
    * 
    * Main method to start spring boot application 
    */ 
    public static void main(String[] args) throws Exception{ 
     SpringApplication.run(Application.class, args); 
    } 
}