0 Tage Serie
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
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Component
public class RateLimitingInterceptor implements HandlerInterceptor {
@Override
public 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.