Description
Interceptor atau pencegat request atau response, untuk temen-temen yang sudah pernah pakai servlet mungkin akan mudah memahami cara kerja interceptor, dengan interceptor kita bisa melakukan operasi ketika:- Sebelum request masuk ke controller
- Sebelum response sampai ke client
How To
Untuk bekerja dengan interceptor kamu perlu buat class dengan anotasi @Component dan implementasi interface HandlerInterceptor.
Interface HandlerInterceptor memiliki 3 method:
- preHandle(req, res, hand) : untuk melakukan operasi sebelum request masuk ke controller
- postHandle(req, res, hand) : untuk melakukan operasi sebelum response sampai ke client
- afterCompletion() : untuk melakukan opeasi setelah menyelesaikan request dan responseBuat class interceptor
@Component public class ProductServiceInterceptor implements HandlerInterceptor { @Override public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; } @Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {} @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) throws Exception {} }
Buat class implementasi webmvc dan registrasikan interceptor
@Component public class ProductServiceInterceptorAppConfig extends WebMvcConfigurerAdapter { @Autowired ProductServiceInterceptor productServiceInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(productServiceInterceptor); } }
Komentar
Posting Komentar