Вы можете использовать HandlerInterceptorAdapter для получения ответа после каждого вызова, а также для проверки кода ответа и выполнения необходимых действий
@Component
public class TestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Object object) throws Exception {
System.out.println("test");
return true;
}
@Override
public void afterCompletion(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Object handler, @org.springframework.lang.Nullable java.lang.Exception ex) throws java.lang.Exception {
if(response.getStatus()==302){
// your code
}
}
}
После создания перехватчика необходимо зарегистрировать его в InterceptorRegistry
@Component
public class InterceptorsConfig implements WebMvcConfigurer {
@Autowired
private TestInterceptor testInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(testInterceptor);
}
}
После запуска запроса управление сначала перейдет к перехватчику.
Пример Restcontroller
@RestController
@RequestMapping("/test")
public class Restcontroller {
@GetMapping
public ModelAndView redirectWithUsingRedirectPrefix(ModelMap model) {
model.addAttribute("attribute", "redirectWithRedirectPrefix");
return new ModelAndView("redirect:/redirectedUrl", model);
}
}