0 Tage Serie
java / expert
Snippet

Anpassung des reaktiven Fehler-Mappings in WebFlux

In Spring WebFlux erfordert die Anpassung globaler Fehlerantworten die Erweiterung von DefaultErrorAttributes. Dies ermöglicht es Ihnen, geschäftsspezifische Metadaten einzufügen und sensible Stacktrace-Informationen aus dem Antwortkörper für alle reaktiven Endpunkte zu bereinigen.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Component
public class GlobalErrorAttributes extends DefaultErrorAttributes {
@Override
public Map<String, Object> getErrorAttributes(ServerRequest request, ErrorAttributeOptions options) {
Map<String, Object> map = super.getErrorAttributes(request, options);
Throwable error = getError(request);
if (error instanceof BusinessException) {
map.put("status", 422);
map.put("errorCode", ((BusinessException) error).getErrorCode());
}
map.remove("path");
return map;
}
}
spring
Erklärung
1
extends DefaultErrorAttributes
Überschreibt den Standardmechanismus zur Generierung von JSON-Fehler-Payloads in WebFlux.
2
getError(request)
Ruft das tatsächliche Throwable ab, das die Fehlerantwort im aktuellen Request-Kontext ausgelöst hat.
3
map.put("errorCode", ...)
Reichert die Antwort mit einem benutzerdefinierten Fehlercode an, der in unserer internen Geschäftslogik definiert ist.