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 |