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