Q: Why my preHandle interceptor call after the controller method why my interceptor call after controller 
My Inteceptor
@Slf4j
@Component
public class LoggingInterceptor extends HandlerInterceptorAdapter {
 @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
      throws Exception {
    System.out.println("Call Interceptor preHandle method");
    return true;
  }
}
    <mvc:interceptor>
        <mvc:mapping path="/*" />
        <mvc:exclude-mapping path="/index*" />
        <bean class="my.corp.LoggingInterceptor" />
    </mvc:interceptor>

Here is my controller:
@RestController
@RequestMapping("/api")
public class TestApiController {

  @PostMapping("/test")
  public TestObject create(
      @RequestBody @Valid Student request) {
    System.out.println("Call controller method")
    return "";
  }
}

But when I send a request to /api/test. 
The log is : 
Call controller method
Call Interceptor preHandle method

I expected preHandle should be call before Controller, but seem something went wrong here

A: The problem is this
        
path shoud be double star "/**"
