Sobes.tech
Middle

Spring'de Filtreler, Interceptorler ve Dinleyiciler arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • Filtreler (Spring Web): Servlet seviyesinde istekleri ve yanıtları yakalarlar. İstek/yanıtı değiştirme, kimlik doğrulama, yetkilendirme, günlük kaydı gibi işlemler için kullanılırlar ve isteğin kontrolöre ulaşmadan önce uygulanır. URL şablonlarına uygulanır.

  • Interceptors (Spring MVC): Spring MVC seviyesinde istekleri yakalarlar. Filtrelerden sonra, ancak isteğin kontrolör tarafından işlenmesinden önce çalışırlar. (preHandle), (postHandle) ve (afterCompletion) ile istek işleme tamamlandıktan sonra işlemler yapmaya olanak tanır. Model üzerinde manipülasyon, kontrolör seviyesinde erişim izinleri kontrolü için kullanılırlar. Kontrolör metodlarına uygulanır.

  • Listeners (Spring Context): Spring bağlamındaki olaylara tepki verirler. Bağlamın başlatılması veya durdurulması sırasında, belirli bir olay türü alındığında işlemler yaparlar. Kaynakların başlatılması, verilerin temizlenmesi veya uygulama durumundaki değişikliklere göre görevlerin yerine getirilmesi gibi işlemler için kullanılabilirler. Web isteklerinden bağımsız çalışırlar. ApplicationListener arayüzünü uygularlar.

İşte tablo halinde karşılaştırma:

Özellik Filtreler Interceptors Listeners
Seviye Servlet Spring MVC Spring Context
Ne zaman çalışır Servlet öncesi ve sonrası Kontrolör öncesi, sonrası ve tamamlandıktan sonra Olay gerçekleştiğinde
Uygulama alanı URL şablonları Kontrolör metodları Olay türleri
Amaç İstek/yanıt modifikasyonu, kimlik doğrulama Model manipülasyonu, kontrolör seviyesinde yetkilendirme Bağlam olaylarına tepki verme
Arayüz javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.springframework.context.ApplicationListener