Oui oui pour l'utilité t'en fais pas, j'ai utilisé Spring pendant des années, je suis en train de ré-implémenter Jersey sur Vert.x, j'utilise aussi des services, modules, contrôleurs AngularJS donc oui le cas que tu décris ne m'est pas du tout inconnu
Ce que je veux dire c'est que soit :
-
le cours s'adresse à des gens qui connaissent l'injection de dépendance et à ce compte-là il vaut mieux se cantonner à décrire les annotations et ce qu'elles font (si je devais écrire un truc sur Spring, je dirais que tes managers sont des
@Component
et que dans chacun on retrouve des DAOs@Autowired
, et je pourrais presque m'arrêter là) -
le cours s'adresse à des débutants complets, et à ce compte là l'exemple ne suffit pas, puisque dans ce cas l'injection de dépendance n'a quasiment aucun intérêt.
L'exemple d'AngularJS est frappant d'ailleurs. Tu as un service qui fait des requêtes APIs, tu vas t'en servir dans presque tous tes contrôleurs. Et t'as pas envie d'aller le chercher à chaque fois. T'as envie de déclarer ta dépendance et que le framework s'en occupe.
Ton exemple de managers et DAOs et l'exemple parfait d'injection de dépendances et du coup tu le dis toi-même "tous mes DAOs sont injectables dans n'importe quel manager" => OUI et je pense que c'est ça qu'il est essentiel de faire comprendre à un débutant, sans quoi il risque de ne pas comprendre l'intérêt.
Je me mets à la place d'un débutant : pour initialiser une propriété intrinsèque d'un objet, autant passer par le constructeur. Par contre pour injecter un objet qui a un cycle de vie en dehors de mon objet alors là oui.
(ça revient à l'histoire du pizzaiolo qui bosse dans plein de pizzeria à la fois, peut-être qu'en parlant des recettes ça serait plus illustratif d'ailleurs).