首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使多个Spring HandlerInterceptors按特定顺序执行

如何使多个Spring HandlerInterceptors按特定顺序执行
EN

Stack Overflow用户
提问于 2021-08-24 22:33:03
回答 1查看 417关注 0票数 0

我目前正在从事一个Spring引导项目。我依赖于一个具有interceptor(LibraryProjectInterceptor.java)和public class LibraryProjectConfig implements WebMvcConfigurer并重写addInterceptors()方法以将LibraryProjectInterceptor添加到InterceptorRegistry的库项目。在我添加了这个库项目依赖项的实际项目中,我创建了一个拦截器(ActualProjectInterceptor),它需要在执行LibraryProjectInterceptor之后执行。我尝试过将@Order(value = Ordered.LOWEST_PRECEDENCE)添加到ActualProjectInterceptor中,以使其在LibraryProjectInterceptor之后执行,但它不起作用。有人能帮我吗

图书馆项目:

代码语言:javascript
复制
public class LibraryProjectInterceptor implements HandlerInterceptor {
 ......
}




  @Configuration
  @EnableWebMVC
  public class LibraryProjectConfig implements WebMvcConfigurer {
    ......
        @Override
            public void addInterceptors(InterceptorRegistry registry) {
                registry.addInterceptor(LibraryProjectInterceptor);
            }
    ......
    }

实际项目:pom.xml

代码语言:javascript
复制
 ......

<dependencies>
 <dependency> 
   <groupId>com.example</groupId>
   <artifactId>library-project</artifactId>
   <version>1.0.16</version>
 </dependency>
 ......

@Component
@Order(value = Ordered.LOWEST_PRECEDENCE)
public class ActualProjectInterceptor implements HandlerInterceptor{
.......
}

@SpringBootApplication
public class ActualProjectConfig implements WebMvcConfigurer {
......
    @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(ActualProjectInterceptor);
        }
......
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-24 22:46:53

试试这个,我希望它能起作用。

代码语言:javascript
复制
@Component
public class ActualProjectInterceptor implements HandlerInterceptor {}

@SpringBootApplication
public class ActualProjectConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(ActualProjectInterceptor)
                .order(Ordered.LOWEST_PRECEDENCE);
    }
}

addInterceptor()方法创建InterceptorRegistration DSL对象,该对象具有指定所需内容的order()方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68914774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档