Sobes.tech
Middle

Wat is het verschil tussen Filters, Interceptors en Listeners in Spring?

sobes.tech AI

Antwoord van AI

  • Filters (Spring Web): Vangen verzoeken en antwoorden op servletniveau. Gebruikt voor het wijzigen van verzoek/antwoord, authenticatie, autorisatie, logging voordat het verzoek de controller bereikt. Toegepast op URL-patronen.

  • Interceptors (Spring MVC): Vangen verzoeken op Spring MVC-niveau. Werken na Filters, maar voordat het verzoek door de controller wordt verwerkt. Stellen acties in vóór (preHandle), na (postHandle) en na voltooiing van de verwerking (afterCompletion). Gebruikt voor modellering, toegangscontrole op controllerniveau. Toegepast op controller-methoden.

  • Listeners (Spring Context): Reageren op gebeurtenissen in de Spring-context. Stellen acties in bij starten of stoppen van de context, bij ontvangst van een bepaald type gebeurtenis. Kunnen worden gebruikt voor resource-initialisatie, gegevensopruiming of taken bij statuswijzigingen van de applicatie. Werken onafhankelijk van webverzoeken. Implementeert ApplicationListener.

Hier een tabelvergelijking:

Kenmerk Filters Interceptors Listeners
Niveau Servlet Spring MVC Spring Context
Wanneer actief Voor en na servlet Voor, na en bij voltooiing van controller Bij gebeurtenis
Toepassing op URL-patronen Controller-methoden Gebeurttypen
Doel Wijzigen van verzoeken/antwoorden, authenticatie Manipulatie van model, autorisatie op controllerniveau Reageren op contextgebeurtenissen
Interface javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.springframework.context.ApplicationListener