为什么我的preHandle拦截器在控制器方法之后调用

问题描述 投票:0回答:1

为什么我的拦截器调用控制器后

我的拦截器

@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>

这是我的控制器:

@RestController
@RequestMapping("/api")
public class TestApiController {

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

但是当我向/api/test发送请求时。

日志是:

Call controller method
Call Interceptor preHandle method

我期望preHandle应该在Controller之前调用,但看起来这里出了问题

spring-mvc spring-boot interceptor
1个回答
0
投票

问题是这条路应该是双星“/ **”

© www.soinside.com 2019 - 2024. All rights reserved.