Utilisation des beans : injection par setters et constructeurs Bean:injection Setter
Le bean devient disponible pour l’application une fois que le bean est déclaré dans la configuration. Nous pouvons alors l’injecter comme membre de notre classe.
Spring ne peut injecter des dépendances que dans un bean Spring.
Les connaisseurs vous diront qu’il est possible, en paramétrant la JVM, d’injecter les beans où on le souhaite, en modifiant le class loader, mais dans un contexte d’utilisation normal, nous nous limiterons aux beans Spring.
Le premier bean de notre application sera donc obligatoirement instancié par une factory Spring qui chargera le contexte et appliquera la configuration à ce bean. C’est le point de démarrage de Spring dans l’application.
Spring crée l’objet avec le constructeur par défaut et appelle ensuite les setters pour injecter les références des objets à injecter. Si le constructeur par défaut n’est pas disponible, Spring utilise alors un constructeur avec des arguments, ce qui permet aussi de renseigner les dépendances. Cette possibilité est utilisée pour les API externes à Spring qui ne disposent pas de constructeurs par défaut comme les pools de connexions pour lesquels nous devons passer la datasource en paramètre de constructeur.
Un constructeur qui contient en paramètre des beans permet de faire l’équivalent de l’annotation @Autowired...