Structure de package recommandée d'un projet Spring Boot

1. Vue d'ensemble

Lors de la création d'un nouveau projet Spring Boot, il existe un degré élevé de flexibilité sur la façon dont nous pouvons organiser nos cours.

Néanmoins, il y a certaines recommandations que nous devons garder à l'esprit.

2. Aucun package par défaut

Étant donné que les annotations Spring Boot telles que @ComponentScan , @EntityScan, @ConfigurationPropertiesScan et @SpringBootApplication utilisent des packages pour définir les emplacements d'analyse, il est recommandé d'éviter d'utiliser le package par défaut - c'est-à-dire que nous devons toujours déclarer le package dans nos classes .

3. Classe principale

L' annotation @SpringBootApplication déclenche l'analyse des composants pour le package actuel et ses sous-packages. Par conséquent, une solution solide consiste à faire en sorte que la classe principale du projet réside dans le package de base .

Ceci est configurable et nous pouvons toujours le localiser ailleurs en spécifiant le package de base manuellement. Cependant, dans la plupart des cas, cette option est certainement plus simple.

De plus, un projet basé sur JPA aurait besoin de quelques annotations supplémentaires sur la classe principale:

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

Sachez également qu'une configuration supplémentaire peut être nécessaire.

4. Conception

La conception de la structure du package est indépendante de Spring Boot. Par conséquent, il devrait être imposé par les exigences de notre projet.

Une stratégie populaire est package par fonctionnalité , qui améliore la modularité et permet une visibilité privée des packages à l'intérieur des sous-packages.

Prenons, par exemple, le projet PetClinic. Ce projet a été construit par les développeurs Spring pour illustrer leur point de vue sur la manière dont un projet Spring Boot commun doit être structuré.

Il est organisé package par fonctionnalité. Par conséquent, nous avons le package principal, org.springframework.samples.petclinic , et 5 sous-packages:

  • org.springframework.samples.petclinic. modèle
  • org.springframework.samples.petclinic. propriétaire
  • org.springframework.samples.petclinic. système
  • org.springframework.samples.petclinic. vétérinaire
  • org.springframework.samples.petclinic. visite

Chacun d'eux représente un domaine ou une caractéristique de l'application, regroupant des classes hautement couplées à l'intérieur et permettant une forte cohésion .

5. Conclusion

Dans ce petit article, nous avons examiné certaines recommandations que nous devons garder à l'esprit lors de la création d'un projet Spring Boot - et appris comment concevoir la structure du package.