registry.order()怎么设置拦截器的顺序
时间: 2024-04-15 12:32:11 浏览: 163
要设置拦截器的执行顺序,可以使用`registry.order()`方法。`order()`方法接受一个整数参数,数值越小的拦截器会先执行,数值越大的拦截器会后执行。
以下是一个示例代码,演示如何使用`order()`方法设置拦截器的执行顺序:
```java
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
// 注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin()))
.addPathPatterns("/**")
.excludePathPatterns("/user") // 白名单,只放行登录的白名单。
.order(1); // 设置拦截器的执行顺序为1,数值可以根据需要进行调整。
// 添加其他拦截器,并设置执行顺序
registry.addInterceptor(new OtherInterceptor())
.addPathPatterns("/**")
.order(2); // 设置拦截器的执行顺序为2,数值可以根据需要进行调整。
}
}
```
在上述代码中,`registry.addInterceptor()`方法返回的`InterceptorRegistration`对象上调用了`order()`方法来设置拦截器的执行顺序。在这个例子中,Sa-Token拦截器的执行顺序为1,Other拦截器的执行顺序为2。
请根据您的实际需求设置拦截器的执行顺序,并确保数值越小的拦截器会先执行。
阅读全文