禁用某个拦截器的方法取决于你使用的具体框架和拦截器类型。下面我按常见场景给你说明,你可以对照自己的情况操作。
在拦截器注册时根据条件决定是否注册。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
if (shouldEnableInterceptor()) {
registry.addInterceptor(new MyInterceptor())
.addPathPatterns("/**");
}
}
private boolean shouldEnableInterceptor() {
// 例如:根据配置、环境、Profile
return true;
}
}
✅ 适合:临时关闭、按环境控制
@ConditionalOnProperty(推荐)通过配置文件控制是否启用拦截器。
@Component
@ConditionalOnProperty(
name = "interceptor.my.enabled",
havingValue = "true",
matchIfMissing = false
)
public class MyInterceptor implements HandlerInterceptor {
}
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired(required = false)
private MyInterceptor myInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
if (myInterceptor != null) {
registry.addInterceptor(myInterceptor)
.addPathPatterns("/**");
}
}
}
interceptor:
my:
enabled: false
✅ 适合:可配置、可维护
@Profile("!dev")
@Component
public class MyInterceptor implements HandlerInterceptor {
}
spring:
profiles:
active: dev
✅ 适合:不同环境使用不同拦截器
registry.addInterceptor(new MyInterceptor())
.addPathPatterns("/**")
.excludePathPatterns(
"/login",
"/register",
"/public/**"
);
✅ 适合:接口级别控制
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) {
if (request.getRequestURI().startsWith("/skip")) {
return true;
}
// 正常拦截逻辑
return true;
}
⚠️ 不推荐长期使用,维护成本高
OkHttpClient client = new OkHttpClient.Builder()
// 不添加某个拦截器
.build();
OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (enableLogInterceptor) {
builder.addInterceptor(new LoggingInterceptor());
}
OkHttpClient client = builder.build();
@Intercepts + 条件跳过@Intercepts({...})
@Component
@ConditionalOnProperty(name = "mybatis.interceptor.enabled", havingValue = "true")
public class MyInterceptor implements Interceptor {
}
✅ 最推荐方式
❌ 不推荐
请告诉我:
我可以直接给你可复制的完整代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。