java / expert
Snippet
Granulare Vorverarbeitung mit HandlerInterceptor
HandlerInterceptor bieten eine Möglichkeit, Logik anzuwenden, bevor sie den Controller erreicht, aber nach der Servlet-Filter-Kette. Dies ist ideal für Logik, die Kenntnisse über den Spring-Handler benötigt (z. B. das Prüfen von Annotationen an der Controller-Methode).
snippet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Componentpublic class RateLimitingInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception {String apiKey = request.getHeader("X-API-KEY");if (!limiter.tryConsume(apiKey)) {response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value());return false;}return true;}}
spring
Erklärung
1
return false;
Stoppt die Ausführung des Requests und verhindert, dass er den Controller erreicht.
2
Object handler
Der Ziel-Handler (Controller-Methode), der den Request verarbeitet, wenn die Ausführung fortgesetzt wird.