Federabhängigkeitsinjektion

Federabhängigkeitsinjektion

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.