Federabhängigkeitspritze (DI)

Federnabhängigkeitsinjektion (DI)

In Spring FrameWork wird das Entwurfsmuster "Dependency Injection" (DI) verwendet, um die Objektabhängigkeiten untereinander zu definieren. Es gibt zwei Haupttypen:

  • Setter Injection

  • Konstruktor-Injection

1. Setter Injection

Dies ist die beliebteste und einfachste DI-Methode. Sie injiziert die Abhängigkeit über eine Setter-Methode.

Beispiel

Eine Hilfsklasse mit einer Setter-Methode.

package com.example.output;

import com.example.output.IOutputGenerator;

public class OutputHelper
{
    IOutputGenerator outputGenerator;

    public void setOutputGenerator(IOutputGenerator outputGenerator){
        this.outputGenerator = outputGenerator;
    }

}

Eine Bean-Konfigurationsdatei zum Deklarieren der Beans und zum Festlegen der Abhängigkeit über Setter-Injection (Property-Tag).



    
        
            
        
    




Sie fügen einfach eine Bean "CsvOutputGenerator" über eine Setter-Methode (setOutputGenerator) in das Objekt "OutputHelper" ein.

2. Konstruktor-Injection

Diese DI-Methode injiziert die Abhängigkeit über einen Konstruktor.

Beispiel

Eine Helferklasse mit einem Konstruktor.

package com.example.output;

import com.example.output.IOutputGenerator;

public class OutputHelper
{
    IOutputGenerator outputGenerator;

        OutputHelper(IOutputGenerator outputGenerator){
        this.outputGenerator = outputGenerator;
    }
}

Eine Bean-Konfigurationsdatei zum Deklarieren der Beans und zum Festlegen der Abhängigkeit über die Konstruktorinjektion (constructor-arg-Tag).



    
        
            
        
    




Sie fügen einfach eine Bean "CsvOutputGenerator" über einen Konstruktor in das Objekt "OutputHelper" ein.

Setter- oder Constructor-Injection?

Es gibt keine festen Regeln für das Spring-Framework. Verwenden Sie einfach den DI-Typ, der Ihren Projektanforderungen entspricht. Aufgrund der Einfachheit der Setter-Einspritzung wird diese jedoch für die meisten Szenarien immer ausgewählt.