Anbefalet pakkestruktur for et Spring Boot-projekt

1. Oversigt

Når vi bygger et nyt Spring Boot-projekt, er der en høj grad af fleksibilitet i, hvordan vi kan organisere vores klasser.

Der er stadig nogle anbefalinger, som vi skal huske på.

2. Ingen standardpakke

I betragtning af det faktum, at Spring Boot-kommentarer kan lide @ComponentScan, @EntityScan, @ConfigurationPropertiesScan og @SpringBootApplication brug pakker til at definere scanningsplaceringer, det anbefales, at vi undgår at bruge standardpakken - dvs. vi skal altid erklære pakken i vores klasser.

3. Hovedklasse

Det @SpringBootApplication annotation udløser komponentscanning efter den aktuelle pakke og dens underpakker. Derfor er en solid vej at gå projektets hovedklasse ligger i basispakken.

Dette kan konfigureres, og vi kan stadig finde det andetsteds ved at angive basispakken manuelt. I de fleste tilfælde er denne mulighed dog bestemt enklere.

Endnu mere skal et JPA-baseret projekt have et par yderligere kommentarer til hovedklassen:

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

Vær også opmærksom på, at der muligvis er behov for ekstra konfiguration.

4. Design

Udformningen af ​​pakkestrukturen er uafhængig af Spring Boot. Derfor bør det pålægges af kravene i vores projekt.

En populær strategi er pakke-for-funktion, som forbedrer modularitet og muliggør pakke-privat synlighed i underpakker.

Lad os f.eks. Tage PetClinic-projektet. Dette projekt blev bygget af Spring-udviklere for at illustrere deres syn på, hvordan et fælles Spring Boot-projekt skal struktureres.

Det er organiseret på en pakke-for-funktion måde. Derfor har vi hovedpakken, org.springframework.samples.petclinicog 5 underpakker:

  • org.springframework.samples.petclinic.model
  • org.springframework.samples.petclinic.ejer
  • org.springframework.samples.petclinic.system
  • org.springframework.samples.petclinic.dyrlæge
  • org.springframework.samples.petclinic.besøg

Hver af dem repræsenterer et domæne eller en funktion i applikationen, gruppering af højkoblede klasser indeni og muliggør høj samhørighed.

5. Konklusion

I denne lille artikel kiggede vi på nogle anbefalinger, vi skal huske på, når vi bygger et Spring Boot-projekt - og lærte om, hvordan vi kan designe pakkestrukturen.


$config[zx-auto] not found$config[zx-overlay] not found