Heim >Java >javaLernprogramm >Warum sollte ich eine Feldinjektion im Frühjahr vermeiden?

Warum sollte ich eine Feldinjektion im Frühjahr vermeiden?

DDD
DDDOriginal
2024-12-08 16:26:111027Durchsuche

Why Should I Avoid Field Injection in Spring?

Feldinjektion und ihre Vermeidung verstehen

Feldinjektion, wie im Beispiel unten zu sehen ist, entsteht, wenn eine Bohne mit @Autowired direkt auf ihrem Feld injiziert wird:

@Component
public class MyComponent {
    @Autowired
    private Cart cart;
}

Im Gegensatz dazu beinhaltet die Konstruktorinjektion, wie im Beispiel unten, das Einfügen von Abhängigkeiten über Konstruktor:

@Component
public class MyComponent {
    private final Cart cart;

    @Autowired
    public MyComponent(Cart cart){
       this.cart = cart;
    }
}

Injektionsrichtlinien

Im Allgemeinen empfiehlt Spring die folgenden Injektionspraktiken:

  • Verwenden Sie die Konstruktorinjektion für obligatorische Abhängigkeiten oder Unveränderlichkeit.
  • Setter-Injektion optional oder veränderbar verwenden Abhängigkeiten.
  • Feldinjektion in den meisten Fällen vermeiden.

Nachteile der Feldinjektion

Feldinjektion bringt mehrere Nachteile mit sich:

  • Unveränderlichkeit: Es schließt die Schaffung von Unveränderlichkeit aus Objekte.
  • Kopplung: Klassen werden eng an den DI-Container gebunden, was die Verwendung außerhalb davon behindert.
  • Instanziabilität: Feldinjektion erfordert einen DI Container für die Instanziierung, wodurch seine Verwendung beim Unit-Testen eingeschränkt wird.
  • Abhängigkeit Unklarheit:Abhängigkeiten bleiben verborgen und verschleiern wahre Abhängigkeiten.
  • Übermäßige Abhängigkeitsanzahl:Feldinjektion ermöglicht das einfache Hinzufügen einer übermäßigen Anzahl von Abhängigkeiten, was möglicherweise eine Verletzung der Einzelverantwortung darstellt Prinzip.

Fazit

Verwenden Sie je nach Anforderung primär die Konstruktorinjektion oder eine Kombination aus Konstruktor- und Setterinjektion. Die Feldinjektion weist Nachteile auf, die ihre Bequemlichkeit überwiegen, sodass sie im Allgemeinen nicht zu empfehlen ist.

Das obige ist der detaillierte Inhalt vonWarum sollte ich eine Feldinjektion im Frühjahr vermeiden?. 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