Vorwort
Die Kontrollinversion (IOC) wird zur Lösung der Kopplung verwendet und wird hauptsächlich in zwei Arten unterteilt: Abhängigkeitsinjektion und Abhängigkeitsanschauung.
Die Abhängigkeitsinjektion besteht darin, die Abhängigkeiten zu injizieren, die sich im Programm extern in das Programm befinden sollten. Natürlich ist es auch ein Konzept von Designmustern.
Unter der Annahme, dass es Implementierung B von Schnittstellen A und A gibt, wird dieser Code a a = neu b () ausgeführt. Zu diesem Zeitpunkt tritt zwangsläufig eine bestimmte Abhängigkeit auf. Die Schnittstelle scheint jedoch die Abhängigkeit zu lösen, aber die Kopplung tritt dabei weiterhin auf. Wir können die Abhängigkeitsinjektion verwenden, um die Entkopplung zu erreichen. In IOC können Sie den Code, auf den Sie sich in XML verlassen möchten, einfügen und diese Abhängigkeitsbeziehung bei Bedarf über einen Container herstellen, dh die erforderliche Schnittstellenimplementierung in die erforderliche Klasse injizieren. Dies kann die Quelle des Begriffs "Abhängigkeitsinjektion" sein.
Einfaches Verständnis der Abhängigkeitsinjektion
Lassen Sie uns jetzt die Technologien im Zusammenhang mit den Frühling und XML beiseite legen. Wie können wir den einfachsten Weg zur Implementierung einer Abhängigkeitsinjektion nutzen? Jetzt ist es immer noch die Implementierung von Schnittstellen A und A.
Unser Zweck ist also so, a a = neu B (); Jetzt definieren wir eine Klasse C, und das Folgende ist die Beziehung zwischen C und A. Um zu neu
öffentliche Klasse C {privat a a; public c (a) {this.a = a; }}Wie benutzt ich also neu? Definieren Sie eine Klasse D und rufen Sie den Konstruktor von C in d neu B () an; das heißt
public class d {@test public void use () {c c = new C (neu B ()); }}Auf diese Weise werden wir keine Abhängigkeiten zwischen A und B in C haben. Wenn wir die Implementierungsklasse von A ändern möchten, können wir die Parameter der Konstruktionsmethode in D direkt ändern, es ist sehr einfach und löst auch die Kopplung. Diese Methode ist die am häufigsten bekannte Konstruktorinjektion.
Dann ist die Feder die Lösung für die Kopplung und die Verwendung von IOC. Hier ist das einfachste Beispiel für die Injektion von Frühlingsabhängigkeit:
Springconfig.xml
<? XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" /> < /beans>
Analyse: Hier sind zwei Bohnen konfiguriert. Die erste besteht darin, eine Bohne in den Konstruktor zu injizieren, und die zweite ist die Bohne, die in den Konstruktor injiziert wird.
Hello.java
Paket Lächeln;/*** Erstellt von Smile am 2016/4/21. */public class Hallo {public hello () {System.out.println ("Hallo"); } public void sayshello () {System.out.println ("Ich möchte Hallo sagen"); }}TheInterface.java
Paket Lächeln;/*** Erstellt von Smile am 2016/4/20. */public class thetestInterface {private Hallo Hallo; public thetestInterface (Hallo Hallo) {this.hello = Hallo; }}Use.java
Paket com.smile; import org.junit.test; import org.springframework.context.applicationContext; import org.springframework.context.support.classPathxMlApplicationContext; Smile.hello; */public class use {@test public void usetest () {applicationContext context = new classPhodexMlApplicationContext ("SpringConfig.xml"); Hallo hallo = (Hallo) Kontext.getbean ("Hallo"); hello.sayhello (); }}Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.