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
ApplicationListenerinterfeisu.
Š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 |