🚀 Spring Boot Starters
Les dépendances starter contiennent un ensemble de dépendances pratiques permettant de répondre à un besoin technique dans votre application.
Dans une application Spring Boot, nous devons privilégier l'utilisation de ces derniers, car au-delà d'être une bonne pratique, cela nous permet d'accéder à l'auto-configuration des connecteurs (pas de code java, uniquement des properties), au suivi des dépendances par les équipe de Spring ainsi que la garantie de compatibilité avec les systèmes externes. 🔐
Cela contribue aussi à limiter le nombre de dépendances que nous avons dans nos pom.xml 🧘
Quels sont les avantages des starters Spring Boot ?
Les starters Spring Boot offrent une auto-configuration, une gestion simplifiée des dépendances et une compatibilité garantie avec les systèmes externes.
Le point commun avec toutes les dépendances starter de Spring Boot est qu'elles importent la dépendance suivante :
Cette dernière permet d'instrumentaliser toute la "magie" de spring boot car elle contient deux fichiers :
- spring.factories
- org.springframework.boot.autoconfigure.AutoConfiguration.imports
- Contient toutes les classes d'auto-configuration permettant de déclarer les Bean à instancier
C'est grâce à la déclaration de tous ces Bean Spring que nous n'avons pas à les configurer et à les écrire manuellement.
Bien souvent, ces classes d'auto-configuration vont importer une ou plusieurs classes de configuration de propriétés, qui permettent d'avoir une validation et une autocomplétion des propriétés dans le fichier application.properties
ou application.yml
😍.
Enfin, les dépendances starter nous permettent de réduire le nombre de dépendances que nous avons dans notre pom.xml ou build.gradle.
Si je n'avais pas le starter suivant :
J'aurais besoin d'avoir les dépendances suivantes :
Comment ajouter un starter à mon projet Spring Boot ?
Vous pouvez ajouter un starter à votre projet en l'incluant dans votre fichier pom.xml
ou build.gradle
. Par exemple, pour ajouter le starter spring-boot-starter-web
, ajoutez la dépendance suivante dans votre fichier pom.xml
:
Si on examine ce starter, nous nous apercevrons qu'il importe les dépendances suivantes :
Ces dépendances importeront, elles aussi, d'autres dépendances tout en assurant la compatibilité entre elles.
Le premier réflexe à avoir avant de chercher une librairie qui permettrait de se connecter à un service est donc de regarder du côté des starters Spring Boot. Bien souvent, les équipes de Spring vous auront mâché le travail 😉.
📋 La liste des starters Spring Boot est disponible ici: https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project/spring-boot-starters
☁️ Spring Cloud
Google CLoud
Il existe des starters permettant de communiquer avec les services Google Cloud.
Ils ont pour base notamment, de ne pas avoir à gérer manuellement l'authentification et le bean CredentialsProvider, en fournissant une classe d'Auto-configuration qui se charge de le faire pour vous en fonction des propriétés que vous avez renseignées.
📋 La liste est disponible ici: https://github.com/GoogleCloudPlatform/spring-cloud-gcp/tree/main/spring-cloud-gcp-starters
AWS
Les starters liés aux services AWS ont le même rôle que les starters Google Cloud, mais pour les services AWS bien évidemment.
📋 La liste est disponible ici: https://github.com/awspring/spring-cloud-aws/tree/main/spring-cloud-aws-starters
AZURE
Tout comme pour Google Cloud et AWS, Microsoft Azure apporte aussi son lot de starters pour faciliter l'intégration de ses services.
📋 La liste est disponible ici: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring