In Spring MVC- und Portlet-Anwendungen bezieht sich Feldinjektion auf die Praxis, eine Abhängigkeit direkt in ein mit Anmerkungen versehenes Feld einzufügen mit @Autowired, wie im folgenden Beispiel gezeigt:
@Component public class MyComponent { @Autowired private Cart cart; }
Alternativ beinhaltet die Konstruktorinjektion die Übergabe der Abhängigkeit als Parameter im Konstruktor:
@Component public class MyComponent { private final Cart cart; @Autowired public MyComponent(Cart cart) { this.cart = cart; } }
Vorteile und Nachteile:
Konstruktorinjektion bietet mehrere Vorteile:
Setter-Injektion ist ebenfalls eine Option und stellt einen Mechanismus bereit zum Injizieren von Abhängigkeiten, die optional oder im Laufe der Zeit veränderbar sein können.
Im Gegensatz dazu hat die Feldinjektion mehrere Nachteile:
Injektionsrichtlinien:
Spring empfiehlt die folgenden Richtlinien:
Fazit:
In Anbetracht der Nachteile der Feldinjektion ist dies im Allgemeinen der Fall Es empfiehlt sich, die Konstruktor- oder Setter-Injektion zu bevorzugen. Die Bequemlichkeit der Feldinjektion wird durch ihre möglichen Nachteile und Einschränkungen aufgewogen.
Das obige ist der detaillierte Inhalt vonWarum wird die Konstruktor- oder Setter-Injektion im Frühjahr der Feldinjektion vorgezogen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!