Heim  >  Artikel  >  Java  >  Spring IOC und DI verstehen

Spring IOC und DI verstehen

PHP中文网
PHP中文网Original
2017-06-22 14:55:211345Durchsuche

IOC ist eine Designidee namens „Inversion of Control“.

1. Flachere Ebene – Analyse aus dem Namen
„Kontrolle“ bezieht sich auf die Kontrolle des Lebenszyklus von Objekten wie Erstellung, Wartung und Zerstörung. Dieser Prozess wird im Allgemeinen proaktiv von unserem Programm gesteuert B. die Verwendung des neuen Schlüsselworts zum Erstellen eines Objekts (Erstellung), das Beibehalten einer Referenz während der Verwendung (Wartung) und die Wiederverwendung des Objekts durch den GC (Zerstören), nachdem alle Referenzen verloren gegangen sind.
„Inversion“ bedeutet, dass die Steuerung des Lebenszyklus von Objekten wie Erstellung, Wartung und Zerstörung von der Programmsteuerung zur IOC-Containersteuerung geändert wird. Wenn ein Objekt benötigt wird, kann es direkt aus dem IOC-Container abgerufen werden Name.

Eine tiefere Ebene – wenn es um DI geht, ist die Abhängigkeitsinjektion eine wichtige Implementierung von IOC.
Die Erstellung eines Objekts umfasst häufig die Erstellung anderer Objekte, beispielsweise der Mitgliedsvariablen eines Objekts A hält einen Verweis auf ein anderes Objekt B, das ist eine Abhängigkeit, A hängt von B ab. Da der IOC-Mechanismus für die Erstellung von Objekten verantwortlich ist, muss diese Abhängigkeit auch vom IOC-Container berücksichtigt werden. Der verantwortliche Weg ist DI – Dependency Injection, indem Abhängigkeiten in die Konfigurationsdatei geschrieben werden und dann beim Erstellen von Objekten mit Abhängigkeiten der IOC-Container die abhängigen Objekte einfügt. Beim Erstellen von A wird beispielsweise erkannt, dass Abhängigkeiten vorhanden sind Der Container erstellt das Objekt B, von dem A abhängt, fügt es in A ein (Assembly, implementiert durch den Reflexionsmechanismus) und gibt dann A an den Objektanforderer zurück, um die Arbeit abzuschließen.

3. Welche Bedeutung hat das IOC?
IOC implementiert keine weiteren Funktionen, aber seine Existenz ermöglicht es uns, geeignete Objekte aus dem IOC-Container abzurufen, ohne dass viel Code erforderlich ist oder komplexe Kopplungsbeziehungen zwischen Objekten berücksichtigt werden müssen, und sorgt für Zuverlässigkeit bei der Objektverwaltung, wodurch die Komplexität erheblich reduziert wird Entwicklung.

Das obige ist der detaillierte Inhalt vonSpring IOC und DI verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn