Sobes.tech
Middle

Kāda ir atšķirība starp Filters, Interceptors un Listeners Spring?

sobes.tech AI

Atbilde no AI

  • Filtri (Spring Web): Pārņem pieprasījumus un atbildes līmenī. Tiek izmantoti pieprasījuma/atbildes modifikācijai, autentifikācijai, autorizācijai, žurnāla ierakstīšanai pirms pieprasījums sasniedz kontrolieri. Tiek piemēroti URL šabloniem.

  • Interceptorii (Spring MVC): Pārņem pieprasījumus Spring MVC līmenī. Darbojas pēc filtra, bet pirms pieprasījums tiek apstrādāts kontrolierī. Atļauj veikt darbības pirms (preHandle), pēc (postHandle) un pēc pieprasījuma apstrādes pabeigšanas (afterCompletion). Tiek izmantoti modeļa manipulācijai, piekļuves tiesību pārbaudei kontroliera līmenī. Tiek piemēroti kontroliera metodēm.

  • Listeneri (Spring Context): Reaģē uz notikumiem Spring kontekstā. Atļauj veikt darbības, uzsākot vai apturot kontekstu, saņemot noteikta veida notikumu. Var tikt izmantoti resursu inicializācijai, datu tīrīšanai vai uzdevumu izpildei, mainoties lietojumprogrammas stāvoklim. Darbojas neatkarīgi no tīmekļa pieprasījumiem. Īsteno ApplicationListener interfeisu.

Šeit ir salīdzinoša tabula:

Zīme Filtri Interceptorii Listeneri
Līmenis Servlets Spring MVC Spring konteksts
Kad darbojas Pirms un pēc servleta Pirms, pēc kontroliera un pabeigšanas Notikuma rašanās laikā
Piemērošana URL šabloni Kontroliera metodes Notikumu tipi
Mērķis Pieprasījuma/atbildes modifikācija, autentifikācija Modeļa manipulācija, autorizācija kontroliera līmenī Reakcija uz konteksta notikumiem
Saskarne javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.springframework.context.ApplicationListener