Sobes.tech
Middle

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. ApplicationListener interfeysini 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