Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    17.2.2. Introduction à Plexus

    La fonctionnalité la plus importante d'un conteneur d'IoC Java est son mécanisme d'injection de dépendances. Le principe de base d'un conteneur IoC est de contrôler la création et la gestion des objets. Ce ne sont plus les objets qui instancient leurs dépendances mais une tierce personne : le conteneur IoC. En utilisant l'injection de dépendances dans une application utilisant la programmation par interface, vous pouvez créer des composants qui n'ont aucune liaison particulière avec les différentes implémentations de vos services. Bien que votre code utilise des interfaces, vous pouvez décrire les dépendances entre les classes et les composants dans un fichier XML qui définit les composants, les classes d'implémentation et les relations entre vos composants. En d'autres termes, vous pouvez écrire des composants isolés et les lier entre eux en utilisant un fichier XML. Dans Plexus, les différents composants d'un système sont définis par un document XML qui se trouve dans META-INF/plexus/components.xml.

    Dans un conteneur Java IoC, il existe plusieurs moyens d'injecter des dépendances dans un objet : injection par constructeur, accesseur ou propriété. Bien que Plexus soit capable d'utiliser ces trois techniques d'injection de dépendances, Maven en utilise seulement deux : l'injection par propriété et par accesseur.

    Injection par constructeur

    L'injection par constructeur permet de fournir des objets nécessaires lors de la création de l'objet. Par exemple, si vous avec un objet du type Person qui possède un constructeur Person(String name, Job job), vous pouvez lui passer ainsi deux valeurs, donc deux dépendances.

    Injection par accesseur

    Ce type d'injection utilise les accesseurs des propriétés des Java Beans pour remplir ses dépendances. Par exemple, si vous avec un objet du type Person qui possède deux propriétés name et job, un conteneur IoC utilisant l'injection par accesseur créera une instance de la classe Person en utilisant le constructeur par défaut et appellera ensuite les méthodes setName() et setJob().

    Injection par propriété

    Les deux types d'injection précédents se basent sur l'appel de méthodes et constructeurs publics. En utilisant l'injection par propriété, un conteneur IoC peut remplir les dépendances d'un composant en utilisant directement ses propriétés. Par exemple, si vous avec un objet du type Person qui contient deux propriétés name et job, votre conteneur IoC utilisera ces champs directement pour remplir les dépendances (i.e. person.name = "Thomas"; person.job = job;)