Struttura del pacchetto consigliata di un progetto Spring Boot

1. Panoramica

Quando creiamo un nuovo progetto Spring Boot, c'è un alto grado di flessibilità su come possiamo organizzare le nostre classi.

Tuttavia, ci sono alcuni consigli che dobbiamo tenere a mente.

2. Nessun pacchetto predefinito

Dato che le annotazioni Spring Boot come @ComponentScan , @EntityScan, @ConfigurationPropertiesScan e @SpringBootApplication utilizzano pacchetti per definire le posizioni di scansione, si consiglia di evitare di utilizzare il pacchetto predefinito, ovvero dovremmo sempre dichiarare il pacchetto nelle nostre classi .

3. Classe principale

L' annotazione @SpringBootApplication attiva la scansione dei componenti per il pacchetto corrente e i relativi sotto-pacchetti. Pertanto, un modo solido per andare è fare in modo che la classe principale del progetto risieda nel pacchetto di base .

Questo è configurabile e possiamo ancora individuarlo altrove specificando manualmente il pacchetto di base. Tuttavia, nella maggior parte dei casi, questa opzione è sicuramente più semplice.

Inoltre, un progetto basato su JPA dovrebbe avere alcune annotazioni aggiuntive sulla classe principale:

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

Inoltre, tieni presente che potrebbe essere necessaria una configurazione aggiuntiva.

4. Progettazione

Il design della struttura del pacchetto è indipendente da Spring Boot. Pertanto, dovrebbe essere imposto dai requisiti del nostro progetto.

Una strategia popolare è pacchetto per funzionalità , che migliora la modularità e consente la visibilità privata del pacchetto all'interno dei sotto-pacchetti.

Prendiamo, ad esempio, il progetto PetClinic. Questo progetto è stato realizzato dagli sviluppatori Spring per illustrare la loro visione su come dovrebbe essere strutturato un progetto Spring Boot comune.

È organizzato in modo pacchetto per funzionalità. Quindi, abbiamo il pacchetto principale, org.springframework.samples.petclinic e 5 sotto-pacchetti:

  • org.springframework.samples.petclinic. modello
  • org.springframework.samples.petclinic. proprietario
  • org.springframework.samples.petclinic. sistema
  • org.springframework.samples.petclinic. veterinario
  • org.springframework.samples.petclinic. visitare

Ognuno di essi rappresenta un dominio o una caratteristica dell'applicazione, raggruppando classi altamente accoppiate all'interno e consentendo un'elevata coesione .

5. conclusione

In questo piccolo articolo, abbiamo dato uno sguardo ad alcuni consigli che dobbiamo tenere a mente quando costruiamo un progetto Spring Boot e abbiamo imparato come progettare la struttura del pacchetto.