Spring Boot interceptor atau middleware

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 response

Buat 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

Postingan populer dari blog ini

whois

Membuat export dan import Excel di spring boot

Spring Boot CRUD Thymeleaf-Pagination + Bootstrap Dynamic Modals