Spring Bootでインターセプターを追加する方法は何ですか?

Spring Bootにインターセプターを追加するメインのステップは以下の通りです:

  1. ハンドラーインターセプター
  2. 事前処理
  3. 処理後
  4. 完了後
  5. Interceptロジックをカスタマイズするために、Interceptorクラス内に実装します。
  6. WebMvcConfigurerを日本語で述べれば、「WebMvcConfigurer」となります。
  7. インターセプターを追加する
  8. インターセプターを追加する
  9. InterceptorRegistryを日本語に訳すと「インターセプター登録機」になります。
  10. インターセプターを追加
  11. addPathPatternsを追加します。
  12. @EnableWebMvcを使用します。

こちらは一つの例です:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CustomInterceptor())
                .addPathPatterns("/api/**"); // 拦截以/api开头的请求路径
    }
}
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CustomInterceptor implements HandlerInterceptor {
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 在请求处理之前进行拦截操作,返回false表示拦截请求,返回true表示放行请求
        return true;
    }
    
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        // 在请求处理之后进行拦截操作,可用于修改响应结果等
    }
    
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        // 在请求完成之后进行拦截操作,可用于记录日志等
    }
}

Spring Bootにインターセプターを追加する基本的な手順は上記の通りです。具体的な要件に応じて、インターセプターロジックを実装することができます。

bannerAds