Since all the answers to this use the now obsolete abstract WebMvcConfigurer adapter instead of WebMvcInterface (as @sebdooe already noted), here is a working minimal example for a SpringBoot (2.1.4) application with an interceptor:
Minimal.java:
@SpringBootApplication public class Minimal { public static void main(String[] args) { SpringApplication.run(Minimal.class, args); } }
MinimalController.java:
@RestController @RequestMapping("/") public class Controller { @GetMapping("/") @ResponseBody public ResponseEntity<String> getMinimal() { System.out.println("MINIMAL: GETMINIMAL()"); return new ResponseEntity<String>("returnstring", HttpStatus.OK); } }
Config.java:
@Configuration public class Config implements WebMvcConfigurer {
MinimalInterceptor.java:
public class MinimalInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest requestServlet, HttpServletResponse responseServlet, Object handler) throws Exception { System.out.println("MINIMAL: INTERCEPTOR PREHANDLE CALLED"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("MINIMAL: INTERCEPTOR POSTHANDLE CALLED"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) throws Exception { System.out.println("MINIMAL: INTERCEPTOR AFTERCOMPLETION CALLED"); } }
works as advertised
The output will give you something like:
> Task :Minimal.main() . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _' | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.4.RELEASE) 2019-04-29 11:53:47.560 INFO 4593 --- [ main] io.minimal.Minimal : Starting Minimal on y with PID 4593 (/x/y/z/spring-minimal/build/classes/java/main started by x in /x/y/z/spring-minimal) 2019-04-29 11:53:47.563 INFO 4593 --- [ main] io.minimal.Minimal : No active profile set, falling back to default profiles: default 2019-04-29 11:53:48.745 INFO 4593 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2019-04-29 11:53:48.780 INFO 4593 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2019-04-29 11:53:48.781 INFO 4593 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17] 2019-04-29 11:53:48.892 INFO 4593 --- [ main] oaccC[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2019-04-29 11:53:48.893 INFO 4593 --- [ main] osweb.context.ContextLoader : Root WebApplicationContext: initialization completed in 1269 ms 2019-04-29 11:53:49.130 INFO 4593 --- [ main] ossconcurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-04-29 11:53:49.375 INFO 4593 --- [ main] osbwembedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2019-04-29 11:53:49.380 INFO 4593 --- [ main] io.minimal.Minimal : Started Minimal in 2.525 seconds (JVM running for 2.9) 2019-04-29 11:54:01.267 INFO 4593 --- [nio-8080-exec-1] oaccC[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2019-04-29 11:54:01.267 INFO 4593 --- [nio-8080-exec-1] osweb.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2019-04-29 11:54:01.286 INFO 4593 --- [nio-8080-exec-1] osweb.servlet.DispatcherServlet : Completed initialization in 19 ms MINIMAL: INTERCEPTOR PREHANDLE CALLED MINIMAL: GETMINIMAL() MINIMAL: INTERCEPTOR POSTHANDLE CALLED MINIMAL: INTERCEPTOR AFTERCOMPLETION CALLED
Xenonite Apr 29 '19 at 10:27 2019-04-29 10:27
source share