Если у вас есть приложение подпружинной загрузки , чтобы перехватить запрос к контроллеру, вы должны использовать другой подход altogethor.
Перехватчики используются вместе с управляемыми классами Java EE для
позволяют разработчикам вызывать методы-перехватчики для связанной цели
класс, в сочетании с вызовами методов или событиями жизненного цикла.
Распространенными видами использования перехватчиков являются регистрация, аудит и профилирование.
Справочник Документ
Вы пытаетесь использовать аннотацию Java EE с пружиной, которая не будет работать. При весенней загрузке вам нужно будет зарегистрировать перехватчики как :
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LocaleChangeInterceptor());
registry.addInterceptor(new ThemeChangeInterceptor()).addPathPatterns("/**").excludePathPatterns("/admin/**");
registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/secure/*");
}
}
Сам перехватчик должен быть классом, который расширяет HandlerInterceptorAdapter
и реализует методы следующим образом.
С весны DOCS :
Все реализации HandlerMapping поддерживают перехватчики обработчиков, которые
полезны, когда вы хотите применить определенные функции к определенным
запросы - например, проверка принципала. Перехватчики должны
реализовать HandlerInterceptor из org.springframework.web.servlet
пакет с тремя методами, которые должны обеспечить достаточную гибкость
делать все виды предварительной обработки и последующей обработки:
preHandle(..): Before the actual handler is executed
postHandle(..): After the handler is executed
afterCompletion(..): After the complete request has finished
@Component
public class RequestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object object) throws Exception {
System.out.println("we are Intercepting the Request");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object object, ModelAndView model)
throws Exception {
System.out.println("request processing "
+ "completed by @RestController");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
Object object, Exception arg3)
throws Exception {
System.out.println("afterCompletion Request Completed");
}
}