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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.