0 Tage Serie
java / intermediate
Snippet

Funktionale Pipeline-Komposition in Spring Services

Die funktionale Komposition höherer Ordnung mit java.util.function.Function und andThen() ermöglicht es, einzelne Transformationsfunktionen innerhalb eines Spring-Beans zu einer modularen, wiederverwendbaren Pipeline zu kombinieren.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Service
public class TextSanitizerService {
private final Function<String, String> sanitizationPipeline;
public TextSanitizerService() {
Function<String, String> trimWhitespace = String::strip;
Function<String, String> removeHtml = text -> text.replaceAll("<[^>]*>", "");
Function<String, String> normalizeEscapes = text -> text.replace("\t", " ");
this.sanitizationPipeline = trimWhitespace
.andThen(removeHtml)
.andThen(normalizeEscapes);
}
public String sanitize(String rawInput) {
return Optional.ofNullable(rawInput)
.map(sanitizationPipeline)
.orElse("");
}
}
spring
Erklärung
1
private final Function<String, String> sanitizationPipeline;
Speichert eine Funktion als First-Class-Objekt, die die zusammengesetzte Verarbeitungskette darstellt.
2
this.sanitizationPipeline = trimWhitespace.andThen(removeHtml).andThen(normalizeEscapes);
Setzt mehrere einzelne Funktionen sequenziell über andThen() zusammen.
3
.map(sanitizationPipeline)
Wendet die funktionale Pipeline sauber auf optionale Daten ohne manuelle Null-Prüfung an.