Empfohlene Paketstruktur eines Spring Boot-Projekts

1. Übersicht

Beim Erstellen eines neuen Spring Boot-Projekts besteht ein hohes Maß an Flexibilität bei der Organisation unserer Kurse.

Dennoch gibt es einige Empfehlungen, die wir berücksichtigen müssen.

2. Kein Standardpaket

Angesichts der Tatsache, dass Spring Boot-Annotationen wie @ComponentScan , @EntityScan, @ConfigurationPropertiesScan und @SpringBootApplication Pakete zum Definieren von Scan-Speicherorten verwenden, wird empfohlen, die Verwendung des Standardpakets zu vermeiden. Das heißt, wir sollten das Paket immer in unseren Klassen deklarieren .

3. Hauptklasse

Die Annotation @SpringBootApplication löst das Scannen von Komponenten für das aktuelle Paket und seine Unterpakete aus . Ein guter Weg ist es daher, die Hauptklasse des Projekts im Basispaket zu haben .

Dies ist konfigurierbar, und wir können es weiterhin an anderer Stelle finden, indem wir das Basispaket manuell angeben. In den meisten Fällen ist diese Option jedoch sicherlich einfacher.

Darüber hinaus müsste ein JPA-basiertes Projekt einige zusätzliche Anmerkungen zur Hauptklasse enthalten:

@SpringBootApplication(scanBasePackages = "example.baeldung.com") @EnableJpaRepositories("example.baeldung.com") @EntityScan("example.baeldung.com")

Beachten Sie auch, dass möglicherweise eine zusätzliche Konfiguration erforderlich ist.

4. Design

Das Design der Paketstruktur ist unabhängig von Spring Boot. Daher sollte es durch die Anforderungen unseres Projekts auferlegt werden.

Eine beliebte Strategie ist die paketweise Funktion , die die Modularität verbessert und die paketprivate Sichtbarkeit in Unterpaketen ermöglicht.

Nehmen wir zum Beispiel das PetClinic-Projekt. Dieses Projekt wurde von Spring-Entwicklern erstellt, um ihre Sicht auf die Struktur eines gemeinsamen Spring Boot-Projekts zu veranschaulichen.

Es ist paketweise organisiert. Daher haben wir das Hauptpaket org.springframework.samples.petclinic und 5 Unterpakete :

  • org.springframework.samples.petclinic. Modell-
  • org.springframework.samples.petclinic. Inhaber
  • org.springframework.samples.petclinic. System
  • org.springframework.samples.petclinic. Tierarzt
  • org.springframework.samples.petclinic. Besuch

Jeder von ihnen stellt eine Domäne oder ein Merkmal der Anwendung dar, wobei hochgekoppelte Klassen darin gruppiert werden und eine hohe Kohäsion ermöglicht wird .

5. Schlussfolgerung

In diesem kleinen Artikel haben wir uns einige Empfehlungen angesehen, die wir beim Erstellen eines Spring Boot-Projekts berücksichtigen müssen - und erfahren, wie wir die Paketstruktur entwerfen können.