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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Componentpublic class GlobalErrorAttributes extends DefaultErrorAttributes {@Overridepublic 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.