Sobes.tech
Middle

Spring-ში Filters, Interceptors და Listeners შორის რა განსხვავებაა?

sobes.tech AI

პასუხი AI-სგან

  • Фильтрлер (Spring Web): Сервлет деңгээлинде суроо-талаптар жана жоопторду кармайт. Суроо-талап/жоопту өзгөртүү, аутентификация, авторизация, логгинг үчүн колдонулат, суроо-талап контроллерге жеткенге чейин. URL шаблондорго колдонулат.

  • Интерцепторлор (Spring MVC): Spring MVC деңгээлинде суроо-талаптарды кармайт. Filter'ден кийин, бирок суроо-талап контроллер тарабынан иштетилмейинче иштейт. Иш-аракеттерди алдын ала (preHandle), кийин (postHandle) жана иштетүүнүн аяктоосунан кийин (afterCompletion) аткарууга мүмкүндүк берет. Модель менен иштөө, контроллер деңгээлиндеги укук текшерүү үчүн колдонулат. Контроллер методдоруна колдонулат.

  • Листенерлер (Spring Context): Spring контекстинде окуяларга реакция кылат. Контекстти ишке киргизүү же токтотуу, белгилүү бир түрдөгү окуяларды алуу учурунда иш-аракеттерди аткарууга мүмкүндүк берет. Ресурстарды баштоо, маалыматтарды тазалоо же тиркеменин абалын өзгөртүү учурунда тапшырмаларды аткаруу үчүн колдонулат. Веб суроо-талаптардан көз каранды эмес. ApplicationListener интерфейсин ишке ашырат.

Мына салыштырма таблица:

Белги Фильтрлер Интерцепторлор Листенерлер
Деңгээл Сервлет Spring MVC Spring Контекст
Эмне убакта иштейт Сервлетке чейин жана кийин Контроллер жана аяктоо учурунда Окуялар пайда болгондо
Колдонулат URL шаблондор Контроллер методдору Окуялар түрлөрү
Максаты Суроо-талап/жоопту өзгөртүү, аутентификация Модель менен иштөө, контроллер деңгээлиндеги авторизация Контексттин окуяларына реакция
Интерфейс javax.servlet.Filter org.springframework.web.servlet.HandlerInterceptor org.springframework.context.ApplicationListener