Introduction
Dans ce projet, vous allez apprendre à configurer une application Spring Boot à l'aide d'un fichier YAML, à implémenter une classe pour gérer les données de configuration et à créer un contrôleur pour afficher les informations configurées sur une page web.
👀 Aperçu

🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment configurer les propriétés de l'application à l'aide d'un fichier YAML
- Comment implémenter une classe
Studentpour gérer les données de configuration - Comment créer un
StudentControllerpour afficher les données configurées sur une page web - Comment modifier la classe de démarrage pour scanner toutes les classes du package du projet
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Utiliser des fichiers YAML pour la configuration de l'application
- Utiliser l'annotation
@ConfigurationPropertiespour lier automatiquement les données de configuration à une classe - Utiliser l'annotation
@Valuepour injecter des valeurs de configuration dans un contrôleur - Utiliser l'annotation
@SpringBootApplicationpour configurer le balayage des composants - Développer une application web simple qui affiche les données configurées
Configurez le fichier YAML
Dans cette étape, vous allez apprendre à configurer les propriétés de l'application à l'aide d'un fichier YAML. Suivez les étapes ci-dessous pour terminer cette étape :
- Accédez au répertoire
src/main/resourcesde votre projet. - Créez un nouveau fichier nommé
application.yml. - Dans le fichier
application.yml, ajoutez la configuration suivante :
## Propriétés définies par l'utilisateur
school: Stanford University
student:
id: 2024000103
name: Taylor Joy
age: 18
courseId: 100018, 321001, 458911
Cette configuration YAML définit la propriété school et les propriétés student, y compris l'identifiant de l'étudiant, le nom, l'âge et les identifiants de cours.
Implémentez la classe Student
Dans cette étape, vous allez implémenter la classe Student pour gérer les données de configuration.
- Accédez au package
org.labex.entityet créez un nouveau fichier nomméStudent.java. - Dans le fichier
Student.java, ajoutez le code suivant :
package org.labex.entity;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
private String id;
private String name;
private int age;
private int[] courseId;
@Override
public String toString() {
return "Student {id=" + id +
", name=" + name +
", age=" + age +
", course id=" + Arrays.toString(courseId) + "}";
}
// Getters et setters
//...
}
Dans cette classe, nous utilisons les annotations @Component et @ConfigurationProperties pour lier automatiquement les propriétés du fichier application.yml aux champs correspondants de la classe Student.
Implémentez le StudentController
Dans cette étape, vous allez implémenter le StudentController pour afficher les données configurées.
- Accédez au package
org.labex.controlleret créez un nouveau fichier nomméStudentController.java. - Dans le fichier
StudentController.java, ajoutez le code suivant :
package org.labex.controller;
import org.labex.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class StudentController {
@Value("${school}")
private String school;
@Autowired
private Student student;
@GetMapping("/student")
public String getStudent() {
return "school=" + school + student.toString();
}
}
Dans ce contrôleur, nous utilisons l'annotation @Value pour injecter la propriété school, et l'annotation @Autowired pour injecter l'objet Student. La méthode getStudent() affichera les données configurées dans le navigateur lorsqu'elle est accédée via l'endpoint /student.
Modifiez la classe de démarrage
Dans cette étape, vous allez modifier la classe de démarrage pour scanner toutes les classes du package org.labex.
- Accédez au package
org.labex.springbootyamlet ouvrez le fichierDemoApplication.java. - Mettez à jour la classe
DemoApplicationcomme suit :
package org.labex.springbootyaml;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages="org.labex")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
En ajoutant scanBasePackages="org.labex" à l'annotation @SpringBootApplication, nous nous assurons que toutes les classes du package org.labex sont scannées et gérées par le contexte Spring.
Emballer et exécuter l'application
Dans cette étape finale, vous allez emballer l'application dans un fichier JAR et exécuter le service Spring Boot.
- Ouvrez un terminal et accédez au répertoire racine de votre projet en utilisant la commande suivante :
cd ~/project/springbootyaml/
- Exécutez les commandes suivantes pour emballer et démarrer le service Spring Boot :
mvn clean package
mvn spring-boot:run
- Une fois le service en cours d'exécution, ouvrez un navigateur web et accédez à
http://localhost:8080/student. Vous devriez voir les informations sur l'école et l'étudiant configurées affichées sur la page.
La sortie devrait ressembler à ceci :

Félicitations! Vous avez réussi à terminer le projet en configurant l'application à l'aide d'un fichier YAML, en implémentant les classes nécessaires et en exécutant le service Spring Boot.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



