> ## Content Index
> Fetch the complete content index at: https://www.sfeir.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# How-To: Trouver ses starters SpringBoot
- URL: https://www.sfeir.dev/back/how-to-trouver-ses-starters-springboot/
- Published: 2024-10-04T09:53:46.000Z
- Updated: 2024-10-04T09:53:46.000Z
- Description: 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.
- Author: Guillaume Fourny
- Tags: Back, Spring Boot

# 🚀 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](https://www.sfeir.dev/back/back-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 :

```xml
<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 :

```xml
<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 :

```xml
<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` :

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

```xml
<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](https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project/spring-boot-starters?ref=sfeir.dev)

# ☁️ 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](https://github.com/GoogleCloudPlatform/spring-cloud-gcp/tree/main/spring-cloud-gcp-starters?ref=sfeir.dev)

## 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](https://github.com/awspring/spring-cloud-aws/tree/main/spring-cloud-aws-starters?ref=sfeir.dev)

## 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](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring?ref=sfeir.dev)

# 📄 Articles liés

- [Késaco : Spring Boot](https://www.sfeir.dev/back/back-spring-boot/)
- [Pourquoi utiliser Spring Boot ?](https://www.sfeir.dev/back/back-pourquoi-utiliser-spring-boot/)
- [Comment créer son projet Spring Boot de zéro !](https://www.sfeir.dev/back/creer-son-projet-spring-boot-de-zero/)