Abhängigkeitsinjektion oder IOC ist ein Kernkonzept des Spring -Frameworks, mit dem Bean -Objekte in der Anwendung verwaltet werden können. Abhängigkeitsinjektion oder DI, wie der Name vorschlägt, die abhängigen Objekte verwaltet und unseren Code locker gekoppelt macht.
Beispielsweise kann eine Federanwendung mehrere voneinander abhängige Module erstellen, um eine voll funktionsfähige Anwendung zu bilden. Die abhängigen Objekte müssen ihre Instanz während der Laufzeit anbieten. Andernfalls kann die Anwendung zusammenbrechen. Als Framework behandelt der Frühling diese Situation und liefert Bohnenobjekte zur Laufzeit.
Das IOC (Inversion der Kontrolle) erledigt diese Aufgabe, ich.e., Injiziert Abhängigkeiten während der Schöpfung der Bohnen. Es ist ein Kernbehälter, der Objekte erstellt, konfiguriert, verwaltet und sogar den gesamten Lebenszyklus eines Objekts verwaltet.
Spring DI wird hauptsächlich als a kategorisiert Konstruktorbasiert Abhängigkeitsinjektion und a Setterbasierte Abhängigkeitsspritze.
In diesem Artikel werden wir Erfahren Sie zunächst mehr über Konstruktorbasiertes Abhängigkeitsinjektion und der Umzug in Setterbasiert im nächsten Thema.
Beginnen wir mit einer auf Maven-basierten Springanwendung, die die folgenden Java- und Konfigurationsdateien enthält.
// Mitarbeiter.Java
Es ist eine einfache Bohnenklasse, die zwei Eigenschaften und Setter-Getter-Methoden enthält.
Paket com.LinuxHint.Bohnen;
import org.Springframework.Stereotyp.Komponente;
@Komponente
Angestellte der öffentlichen Klasse
private int id;
privater Zeichenfolge Name;
public String getName ()
Rückgabename;
public void setName (String Name)
Das.Name = Name;
public int getid ()
Rückgabe -ID;
public void setid (int id)
Das.id = id;
// Projektmanager.Java
Hier haben wir eine andere Bean erstellt, die einige Getter-Setter-Methoden enthält, und der wichtige Punkt besteht darin. Es schafft ein Bohnenobjekt der Mitarbeiterklasse beim Laden in den Anwendungskontext.
Paket com.LinuxHint.Bohnen;
import org.Springframework.Stereotyp.Komponente;
@Komponente
öffentliche Klassenprojektmanager
Mitarbeiter des Privatangestellten;
public ProjectManager (Mitarbeiterangestellter)
Das.Mitarbeiter = Mitarbeiter;
public void setInfo (int id, String Name)
Mitarbeiter.setID (id);
Mitarbeiter.setName (name);
public String getInfo ()
Rückgabe „ID =“+Mitarbeiter.getId ()+”\ nname =“+Mitarbeiter.GetName ();
// Springapp.Java
Dies ist die Hauptklasse, die Springconfig lädt. Hier haben wir die Methode getBean () verwendet, um ein Objekt der Projektmanager -Klasse zu erhalten. Danach setzen wir Werte für dieses Objekt.
Paket com.LinuxHint;
import org.Springframework.Kontext.Anmerkung.AnnotationConfigapplicationContext;
Import com.LinuxHint.Bohnen.Projektmanager;
öffentliche Klasse Springapp
public static void main (String [] args)
AnnotationConfigApplicationContext AC = Neue AnnotationConFigApplicationContext (SpringConfig.Klasse);
ProjectManager PM = AC.GetBean (Projektmanager.Klasse);
PM.setInfo (102, "roman");
String -Ergebnis = PM.Informationen bekommen();
System.aus.println (Ergebnis);
AC.schließen();
// Springconfing.Java
Dies ist die Konfigurationsklasse, mit der die Anwendung konfiguriert werden kann. Es ist wichtig beim Konfigurieren von Anwendungen mit Anmerkungen.
Paket com.LinuxHint;
import org.Springframework.Kontext.Anmerkung.Komponentencan;
import org.Springframework.Kontext.Anmerkung.Aufbau;
@Aufbau
@Componentscan (“com.LinuxHint.*”)
öffentliche Klasse Springconfig
// pom.xml
Diese Datei enthält Maven -Abhängigkeiten für das Frühlingsprojekt.
4.0.0 com.LinuxHint Springapp 0.0.1-snapshot Springapp Eine einfache Frühlings -App Org.Springframework Frühlingskern $ Spring.Ausführung Org.Springframework Frühlingskontext $ Spring.Ausführung Javax.Anmerkung Javax.Annotation-api 1.3.2 5.2.8.FREIGEBEN
Projektstruktur
Nach dem Erstellen aller Dateien und des Codes ist unsere Projektstruktur nachstehend dargestellt:
Führen Sie die Anwendung aus
Führen Sie nun die Anwendung aus, und sie muss die folgende Ausgabe im Konsolenfenster anzeigen:
ID = 102
Name = Roman
Konfiguration mit XML -Code
Sie können dies tun, wenn Sie Ihre Anwendung mit dem XML -Code konfigurieren möchten. Die XML -Konfiguration ist jedoch eine altmodische Möglichkeit, dies zu tun, wird jedoch immer noch vom Spring -Framework unterstützt. Sie haben die Wahl, Ihre Anwendung entweder mit XML- oder Java -Anmerkungen zu konfigurieren.
Im XML -Fall müssen wir nur eine Datei erstellen applicationContext.xml und lesen Sie es in die Springapp Klassendatei. Dein applicationContext.xml Die Datei muss den folgenden XML -Code enthalten:
// ApplicationContext.xml
xmlns: xsi = "http: // www.W3.org/2001/xmlschema-instance "
xmlns: p = "http: // www.Springframework.org/schema/p "
XSI: Schemalocation = "http: // www.Springframework.Org/Schema/Bohnen
http: // www.Springframework.org/schema/bohnen/federn beans-3.0.xsd ">class = "com.LinuxHint.Bohnen.Projektmanager " />
Hier wird das Tag zum Angeben der Bean -Klasse verwendet, und die ID gibt die Bean -Instanz an. Das Tag gibt die Konstruktorabhängigkeit und das Tag zum Injektieren des Objekts in den Konstruktor an.
Abschluss
In diesem Artikel haben wir die Konstruktor-basierte Springabhängigkeitsinjektion kennengelernt. Wir haben seine Konfiguration mit Java -Anmerkungen und XML gelernt. Da es sich um ein Kernkonzept des Spring -Frameworks handelt, müssen Sie es mit dem laufenden Beispiel lernen, das wir erklärt haben.