Maison > Java > javaDidacticiel > le corps du texte

Comprendre Spring IOC et DI

PHP中文网
Libérer: 2017-06-22 14:55:21
original
1343 Les gens l'ont consulté

IOC est une idée de conception appelée « Inversion de contrôle ».

1. Niveau moins profond - analyse du nom
"Contrôle" fait référence au contrôle du cycle de vie des objets tel que la création, la maintenance et la destruction. Ce processus est généralement pris de manière proactive par notre programme Contrôlé. , comme utiliser le nouveau mot-clé pour créer un objet (création), conserver une référence pendant l'utilisation (maintenance) et demander au GC de recycler l'objet (détruire) une fois toutes les références perdues.
"Inversion" signifie que le contrôle du cycle de vie des objets tels que la création, la maintenance et la destruction passe du contrôle du programme au contrôle du conteneur IOC. Lorsqu'un objet est nécessaire, il peut être obtenu directement à partir du conteneur IOC. nom.

2. Un niveau plus profond - lorsqu'il s'agit de DI, l'injection de dépendances est une implémentation importante d'IOC
La création d'un objet implique souvent la création d'autres objets, tels que les variables membres d'un objet A Tenant une référence à un autre objet B, c'est une dépendance, A dépend de B. Puisque le mécanisme IOC est responsable de la création des objets, cette dépendance doit également être prise en charge par le conteneur IOC. La méthode responsable est DI - Dependency Injection, en écrivant des dépendances dans le fichier de configuration, puis lors de la création d'objets avec des dépendances, le conteneur IOC injecte les objets dépendants. Par exemple, lors de la création de A, il est détecté qu'il y a des dépendances, IOC Le. Le conteneur crée l'objet B dont A dépend et l'injecte dans A (assemblage, implémenté via le mécanisme de réflexion), puis renvoie A au demandeur d'objet pour terminer le travail.

3. Quelle est la signification du CIO ?
IOC n'implémente pas plus de fonctions, mais son existence nous permet d'obtenir les objets appropriés à partir du conteneur IOC sans nécessiter beaucoup de code ni prendre en compte des relations de couplage complexes entre les objets, et offre une fiabilité pour la gestion des objets, réduisant considérablement la complexité de. développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal