0 Tage Serie
java / intermediate
Snippet

Dynamische Auflösung von Workflow-Strategien über Map-Injection

Spring befüllt Map-Abhängigkeiten automatisch mit Bean-Namen als Schlüssel und Bean-Instanzen als Werte. Dieser Mechanismus ersetzt verschachtelte Kontrollstrukturen und Verzweigungen durch direkte dynamische Methodenaufrufe zur Laufzeit.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Service
public class PaymentRoutingService {
private final Map<String, PaymentProcessor> processors;
public PaymentRoutingService(Map<String, PaymentProcessor> processors) {
this.processors = processors;
}
public void executePayment(String provider, BigDecimal amount) {
PaymentProcessor processor = processors.get(provider.toLowerCase() + "Processor");
if (processor == null) {
throw new IllegalArgumentException("Unknown provider: " + provider);
}
processor.process(amount);
}
}
spring
Erklärung
1
private final Map<String, PaymentProcessor> processors;
Sammelt alle PaymentProcessor-Beans gemappt nach ihren Spring-Bean-Namen.
2
public PaymentRoutingService(Map<String, PaymentProcessor> processors)
Nutzt Konstruktorinjektion, um die Strategie-Map beim Start zu befüllen.
3
processor.process(amount);
Delegiert die Ausführung an die dynamisch ausgewählte Prozessorinstanz.