簡體   English   中英

將 HandlerInterceptor 遷移到 Spring boot 2.6

[英]Migrate HandlerInterceptor to Spring boot 2.6

我為 Spring 2.4 實現了這個舊代碼

public class Interceptor extends HandlerInterceptorAdapter {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
      Object handler) throws Exception {
    ........
    return super.preHandle(request, response, handler);
  }
}

我把代碼遷移到了Spring 2.6:

public class Interceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
      Object handler) throws Exception {
    ......................
    return HandlerInterceptor.super.preHandle(request, response, handler);
  }
}

Cannot resolve method 'preHandle' in 'Object'所以我將代碼更改為HandlerInterceptor.super.preHandle(request, response, handler);

這樣編輯代碼是否正確: HandlerInterceptor.super.preHandle(request, response, handler); 或者這應該以另一種方式編輯?

這應該是

public class Interceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
      Object handler) throws Exception {
    ......................
    return true;
  }
}

請注意,該方法返回一個 boolean 值。 它告訴 Spring 進一步處理請求(真)或不(假)。

HandlerInterceptorpreHandle()的默認實現只返回true ( https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/HandlerInterceptor.html#preHandle-javax .servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.Object- )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM