0 Tage Serie
java / beginner
Snippet

Implementierung von Inversion of Control durch Konstruktor-Injektion

Konstruktor-Injektion folgt dem Inversion-of-Control-Muster, indem erforderliche Abhängigkeiten bei der Instanziierung der Klasse von außen übergeben werden.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Service
public class OrderService {
private final PaymentGateway paymentGateway;
public OrderService(PaymentGateway paymentGateway) {
this.paymentGateway = paymentGateway;
}
public boolean processOrder(double amount) {
return this.paymentGateway.charge(amount);
}
}
spring
Erklärung
1
private final PaymentGateway paymentGateway;
Deklariert ein unveränderliches Abhängigkeitsfeld, das bei der Konstruktion initialisiert werden muss.
2
public OrderService(PaymentGateway paymentGateway) {
Empfängt die Abhängigkeit direkt über Konstruktorparameter, wodurch Spring das Bean injizieren kann.
3
return this.paymentGateway.charge(amount);
Delegiert den Abrechnungsvorgang an die injizierte PaymentGateway-Instanz.