Aller au contenu

How-To: Trouver ses starters SpringBoot

Les Starters Spring Boot sont des dépendances pratiques qui facilitent la configuration et l'intégration de divers services dans vos applications. Découvrez comment trouver ces librairies permettant de simplifier vos développements.

Starters Spring Boot
Spring Boot Starters

🚀 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 :

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
    <version>3.3.3</version>
    <scope>compile</scope>
</dependency>

Dépendance d'auto-configuration

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 :

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Dépendance spring-boot-starter-security

J'aurais besoin d'avoir les dépendances suivantes :

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>3.3.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>6.1.12</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-config</artifactId>
      <version>6.3.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
      <version>6.3.3</version>
      <scope>compile</scope>
    </dependency>
</dependencies>

Dépendances transitives de spring-boot-starter-security

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 :

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Import de la dépendance spring-boot-starter-web

Si on examine ce starter, nous nous apercevrons qu'il importe les dépendances suivantes :

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>3.3.3</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-json</artifactId>
        <version>3.3.3</version>
    <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <version>3.3.3</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>6.1.12</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>6.1.12</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

Dépendances transitives de spring-boot-starter-web

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

📄 Articles liés

Dernier