Spring-də Filtrlər, Interceptorlər və Dinləyicilər arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
-
Filterlər (Spring Web): Servlet səviyyəsində sorğu və cavabları ələ keçirirlər. Sorğu/cavabı dəyişdirmək, autentifikasiya, icazə və qeydiyyat üçün istifadə olunur və sorğu kontrolçiyə çatmadan əvvəl tətbiq edilir. URL şablonlarına tətbiq olunur.
-
Interceptors (Spring MVC): Spring MVC səviyyəsində sorğuları ələ keçirirlər. Filtrlərdən sonra, lakin sorğu kontrolçiyə işlənməzdən əvvəl işləyirlər. (
preHandle), (postHandle) və (afterCompletion) ilə sorğu tamamlandıqdan sonra əməliyyatlar həyata keçirməyə imkan verir. Modeli manipulyasiya etmək, kontrolçidə icazələri yoxlamaq üçün istifadə olunur. Kontrolçinin metodlarına tətbiq edilir. -
Listeners (Spring Context): Spring kontekstində hadisələrə cavab verir. Kontekstin başlaması və ya dayanması zamanı, və ya müəyyən bir hadisə növü alındıqda əməliyyatlar həyata keçirirlər. Resursların başlanması, məlumatların təmizlənməsi və ya tətbiqin vəziyyətində dəyişikliklər zamanı tapşırıqları yerinə yetirmək üçün istifadə edilə bilər. Web sorğularından müstəqildir.
ApplicationListenerinterfeysini həyata keçirirlər.
Budur, cədvəl şəklində müqayisə:
| Xüsusiyyət | Filterlər | Interceptors | Listeners |
|---|---|---|---|
| Səviyyə | Servlet | Spring MVC | Spring Context |
| İşə düşmə vaxtı | Servletdən əvvəl və sonra | Kontrolçidən əvvəl, sonra və tamamlandıqda | Hadisə baş verdikdə |
| Tətbiq sahəsi | URL şablonları | Kontrolçinin metodları | Hadisə növləri |
| Məqsəd | Sorğu/cavabların dəyişdirilməsi, autentifikasiya | Model manipulyasiyası, kontrolçidə icazə yoxlaması | Kontekst hadisələrinə cavab vermək |
| İnterfeys | javax.servlet.Filter |
org.springframework.web.servlet.HandlerInterceptor |
org.springframework.context.ApplicationListener |