Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 2 · Exercice de TD
Choisir un bean par son nom
Injection de dépendances et configuration · niveau 2
Énoncé
Deux transporteurs implémentent Transporteur (int delaiEnJours()) : le standard (3 jours) et l'express (1 jour). Un service LivraisonUrgente doit recevoir l'express, d'autres services le standard. Nommer les deux beans et écrire LivraisonUrgente.
Corrigé
Le nom d'un bean se donne dans l'annotation de sa classe :
@Component("express")
public class TransporteurExpress implements Transporteur {
@Override
public int delaiEnJours() {
return 1;
}
}
(et @Component("standard") pour l'autre), puis on le désigne dans le constructeur :
@Service
public class LivraisonUrgente {
private final Transporteur transporteur;
public LivraisonUrgente(@Qualifier("express") Transporteur transporteur) {
this.transporteur = transporteur;
}
public int delai() {
return transporteur.delaiEnJours();
}
}
Les autres services, qui demandent un Transporteur sans qualificatif, provoqueraient l'erreur des deux beans : on donne donc aussi @Qualifier("standard") à leur paramètre, ou @Primary au transporteur standard.
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.