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
@Servicepublic 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.