首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Spring MVC 攔截器配置不生效:建議改用註解式攔截器或 HandlerInterceptorAdapter

     編輯:程式設計綜合問答

常見原因

  • 攔截器類未實現 `HandlerInterceptor` 或繼承 `HandlerInterceptorAdapter`。
  • 路徑匹配模式錯誤:`/**` 包含靜態資源,需排除 `/static/**`、`/resources/**`。
  • 配置類未掃描到(缺 `@Configuration`、`@EnableWebMvc` 或組件掃描路徑不含)。
  • 順序問題:多攔截器執行順序由註冊順序決定。

推薦:註解式統一攔截

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthInterceptor())
                .addPathPatterns("/api/**")
                .excludePathPatterns("/api/login", "/api/register", "/static/**");
    }
}

// 攔截器
@Component
public class AuthInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        // 從 Session/Token 校驗
        return true; // 或 false + response.sendError(401)
    }
}

優勢

  • 類型安全、IDE 導航、單元測試友好。
  • 避免 XML 拼寫錯誤、路徑匹配困惑。
  • 結合 `@Autowired` 注入 Service 輕鬆實現複雜權限邏輯。

參考

博客《Spring MVC 統一攔截器實戰》:https://blog.csdn.net/evankaka/article/details/45501811

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved