Adloun

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

Une valeur par défaut

Injection de dépendances et configuration · niveau 1 (application)

Énoncé

Un composant MessageAccueil lit la propriété librairie.message-accueil avec @Value. Que se passe-t-il au démarrage si elle n'est définie nulle part ? Comment lui donner la valeur « Bienvenue ! » dans ce cas ? Écrire deux tests : propriété absente, propriété définie.

Corrigé

Sans valeur, l'application ne démarre pas : Spring ne sait pas remplir le paramètre et le signale : Could not resolve placeholder 'librairie.message-accueil'. On donne une valeur par défaut après un deux-points :


@Component
public class MessageAccueil {

    private final String texte;

    // Après le deux-points : la valeur à prendre si la propriété n’existe pas.
    public MessageAccueil(@Value("${librairie.message-accueil:Bienvenue !}") String texte) {
        this.texte = texte;
    }

    public String texte() {
        return texte;
    }
}

Le premier test vérifie "Bienvenue !" ; le second définit la propriété pour ce seul test :


@SpringBootTest(properties = "librairie.message-accueil=Bonne rentrée !")
class MessageAccueilConfigureTest {

    @Autowired
    MessageAccueil message;

    @Test
    void prendLaValeurConfiguree() {
        assertThat(message.texte()).isEqualTo("Bonne rentrée !");
    }
}

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 →