..
Inversion 'S de Contrôle (IoC) est une caractéristique typique du cadre, ce qui déplace le contrôle des flux par l'application du cadre lui-même.
Prenons un exemple pour clarifier le concept: si vous créez un GUI API par le biais balançoire , le programmeur n'a besoin que de mettre en œuvre les gestionnaires d'événements déclenchés par l'utilisateur, comme appuyer sur un bouton ou la saisie de texte. Cadre est laissé à contrôler le flux d'application, telles que la fermeture et l'ouverture des fenêtres.
Ce type de comportement est appelé IoC car le contrôle est déplacé par le développeur du cadre.
Une fois il est clair que le CIO, nous voyons comment il est utilisé dans le printemps.
Toutes les applications se composent d'objets qui atteignent l'objectif prédéterminé doivent coopérer les uns avec les autres et, inévitablement, sont formés de dépendance.
Normalement, ces dépendances sont résolues par un code qui est adapté à la configuration (habituellement le fabricant).
Supposons que nous ayons à mettre en œuvre une classe pour gérer un magasin de vidéo:
forfait it.mrwebmaster;
l'importation java.util.ArrayList;
java.util.List importation;
{Public class VideoManager
DvdService DvdService privé;
VideoManager publique () {
super ();
/ **
* Résolution de configuration et de la dépendance
* /
this.dvdService DvdServiceImpl = new ();
}
Liste <Dvd> getAvalaibleDvdList publique () {
/ **
* Récupération de la liste des DVDs
* /
Liste <Dvd> dvdList dvdService.getDvdList = ();
/ **
* Boucle sur la liste des DVD à trouver
* Ceux disponibles
* /
Liste = new ArrayList <Dvd> availabeDvdList <Dvd> ();
pour (DVD DVD: dvdList) {
if (dvd.isDisponibile ()) {
availabeDvdList.add (DVD);
}
}
retour availabeDvdList;
}
}
Dans cet exemple, la classe a VideoManager la tâche de récupérer la liste des non-loué un DVD. La liste est récupéré à l'aide d'un service (DvdService) qui récupère une liste de tous les DVD, et le vélo sur la liste sont les DVD disponibles. Le VideoManager classe, donc, a une dépendance à l'DvdService objet, qui est résolu dans le constructeur.

Si nous n'avions pas utilisé de printemps nous devrions nous préoccuper de résoudre le VideoManager dipendeza dans le constructeur de la classe, puisque la dépendance serait résolu d'ici le printemps.
Au printemps, puis, le CIO est utilisée pour inverser le contrôle sur les dépendances de configuration.
Pour cette raison il a été inventé par Martin Fowler, dans son fameux article , l'injection Dependecy terme (DI), qui est parfois utilisé à tort comme synonyme d'un ID IoC.
Le concept de base de DI est d'avoir un objet séparé pour faire la résolution des dépendances et l'initialisation.
La classe suivante assembleur, a la tâche d'initialiser le DvdService classe:

Il existe trois types d'injection Dependecy:
| |
Linux (Cours)
Guide complet de système open-source. A partir de 49 €. |
| |
PHP (cours)
Cours complet pour la création de sites Web dynamiques. A partir de 49 €. |
| |
Ruby et Ruby on Rails (Cours)
Créer des applications logicielles et Web avec Ruby et RoR. A partir de 39 €. |