Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 11 · Application directe du cours

Compter les commandes

Mettre en production · niveau 2

Énoncé

Créer une métrique librairie.commandes qui compte les commandes enregistrées, et la vérifier par un test.

Corrigé

Le service reçoit le registre de Micrometer par injection et crée son compteur une fois :


    private final Counter compteur; // exercice 11.4

    public CommandeService(LivreDepot livres, CommandeDepot commandes, LibrairieProperties proprietes,
                           MeterRegistry registre) {
        this.livres = livres;
        this.commandes = commandes;
        this.proprietes = proprietes;
        this.compteur = Counter.builder("librairie.commandes")
                .description("Commandes enregistrées")
                .register(registre);
    }

et l'incrémente juste après l'enregistrement :


        commandes.save(commande);                          // les lignes suivent (cascade)
        compteur.increment();

Après une commande :


$ curl -s -u admin:libraire-2026 http://localhost:8000/actuator/metrics/librairie.commandes
{"availableTags":[],"description":"Commandes enregistrées","measurements":[{"statistic":"COUNT","value":1.0}],"name":"librairie.commandes"}

    @Test
    void chaqueCommandeIncrementeLeCompteur() {
        double avant = registre.get("librairie.commandes").counter().count();
        assertThat(mvc.post().uri("/api/commandes").contentType(MediaType.APPLICATION_JSON)
                .content("""
                        {"lignes": [{"isbn": "9782956300052", "quantite": 1}],
                         "nom": "Ada", "courriel": "ada@example.org", "retrait": "boutique"}
                        """)).hasStatus(201);
        assertThat(registre.get("librairie.commandes").counter().count()).isEqualTo(avant + 1);
    }

Le test unitaire du service du chapitre 7, qui appelle le constructeur lui-même, lui passe maintenant un new SimpleMeterRegistry() : un registre en mémoire, sans Spring.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →