Mi a különbség a Filters, Interceptors és Listeners között a Spring-ben?
sobes.tech MI
Válasz az MI-től
-
Szűrők (Spring Web): A kérés és válasz szintjén fogják el a kérés- és válaszadatokat. A kérés/válasz módosítására, hitelesítésre, jogosultság ellenőrzésére, naplózásra használják, mielőtt a kérés eléri a kontrollert. URL-mintákhoz alkalmazzák.
-
Interceptors (Spring MVC): A kérés szintjén fogják el a Spring MVC-ben. A szűrők után, de mielőtt a kérés a kontrollert érné, működnek. (
preHandle), (postHandle) és (afterCompletion) metódusokkal lehet műveleteket végrehajtani a kérés feldolgozása után. A modell manipulálására, a hozzáférési jogok ellenőrzésére használják a kontrollernél. A kontrollermetódusokra alkalmazzák. -
Listeners (Spring Context): A Spring kontextus eseményeire reagálnak. A kontextus indításakor vagy leállításakor, vagy egy adott eseménytípus fogadásakor lehet velük műveleteket végezni. Erőforrások inicializálására, adatok tisztítására vagy feladatok végrehajtására használhatók az alkalmazás állapotának változásakor. Függetlenek a webkérésektől. Az
ApplicationListenerinterfészt valósítják meg.
Íme egy táblázatos összehasonlítás:
| Jellemző | Szűrők | Interceptors | Listeners |
|---|---|---|---|
| Szint | Servlet | Spring MVC | Spring Context |
| Mikor működnek | A servlet előtt és után | A kontrollert megelőzően, követően és a feldolgozás végén | Esemény bekövetkeztekor |
| Alkalmazás | URL-minták | Kontrollermetódusok | Eseménytípusok |
| Cél | Kérések/válaszok módosítása, hitelesítés | Modell manipulálása, jogosultság ellenőrzése kontrollerszinten | Eseményekre reagálás a kontextusban |
| Interfész | javax.servlet.Filter |
org.springframework.web.servlet.HandlerInterceptor |
org.springframework.context.ApplicationListener |