2017-01-12 1 views
2

Ich benutze Federdaten Rest (1.3.5.RELEASE), um einen einfachen Rest Service zu erstellen. Die Repository-/JPA-Entitäten werden jedoch nicht erkannt/registriert, wenn sich meine Anwendungskonfiguration auf einer anderen Paketebene befindet.Spring Boot identifiziert nicht Rest Repositories

Hier ist meine Beispielprojektstruktur:

<source.root> 
- package1 
    - Application.java 
- package2 
    - RepositoryService.java 
    - Model.java 

In diesem Fall wird die RepositoryService wird keine Ruhe Verfahren auszusetzen.

Änderung in meiner Projektstruktur wie unten löst dieses Problem.

<source.root> 
- package1 
    - Application.java 
    - package2 
    - RepositoryService.java 
    - Model.java 

Ist es für das Frühjahr Boot-Anwendung Config zwingend vorhanden auf der obersten Ebene zu sein, so dass sie die Bohnen scannen?

+0

Nein, die Anwendungskonfiguration muss nicht unbedingt in einem höheren Paket enthalten sein. Wenn Sie die Anmerkungen auf Application.java teilen, können wir Ihnen eine ausführlichere Antwort geben. –

Antwort

2

Wenn Application.java Haupt Spring Boot-Klasse ist, verwendet es höchstwahrscheinlich @SpringBootApplication Annotation.

Diese Annotation ist zusammengesetzte Annotation und enthält auch @ComponentScan Annotation unter der Haube.

Jetzt scannt der Komponentenscan standardmäßig das aktuelle Paket und alle Unterpakete. Mit Ihrer ersten Projektstruktur haben Sie also Repositories vom Komponentenscan ausgeschlossen.

es lösen Sie diese Optionen haben:

  1. Verwenden Projektstruktur 1 und explizit Pakete definieren zu scannen: @SpringBootApplication(scanBasePackages = "package2"). Dies ist nicht typsicher
  2. Verwenden Sie die Projektstruktur 1, und definieren Sie explizit die Klasse aus dem Paket, das Sie scannen möchten: @SpringBootApplication(scanBasePackageClasses = RepositoryService.class). Dies ist die bessere Option als Option 1, da es typsicher ist
  3. Stick mit eigenwilligen Spring Boot Standardeinstellungen und verwenden Sie Projektstruktur 2. Denken Sie daran, Spring Boot wird Ihr bester Freund sein, wenn Sie nicht versuchen, gegen seine eigenwilligen Standardeinstellungen zu kämpfen . Nur wenn Sie einen wirklich unschlagbaren Grund haben.
Verwandte Themen