gpt4 book ai didi

spring-mvc - 使用多个 Spring WebMvcConfigurerAdapter 如何控制 Configuration 类的顺序?

转载 作者:行者123 更新时间:2023-12-04 18:29:28 24 4
gpt4 key购买 nike

有2个配置,在不同的jar文件中,我想控制拦截器注册的顺序。一个拦截器可能依赖于另一个拦截器设置的数据。

我已经在 addInterceptors 方法上尝试过 @Order。

@Configuration
public class PipelineConfig extends WebMvcConfigurerAdapter {
@Autowired
@Qualifier("Audit")
HandlerInterceptor auditInterceptor;

public PipelineConfig() {
}

@Order(2)
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(this.auditInterceptor);
}
}


@Configuration
public class ExecutionPipelineConfig extends WebMvcConfigurerAdapter {
@Autowired
@Qualifier("ExecutionContext")
HandlerInterceptor executionContextInterceptor;

public ExecutionPipelineConfig() {
}

@Order(1)
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(this.executionContextInterceptor);
}
}

最佳答案

spring 框架文档 [ http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ ] 指定 @Order是用来 :

  • 对集合中的实例进行排序
  • 排序执行监听器
  • @Configuration 元素(spring 框架 4.2+)
  • @Order如果您的 spring 版本 >4.2,则可以在类级别为您的配置应用注释。

    例如:
    @Configuration
    @Order(2)
    public class PipelineConfig extends WebMvcConfigurerAdapter {

    此外,这可能是用于聚合 @Configuration 文件的 @Import 注释的用例( http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch04s03.html)

    另一方面,如果您的拦截器之一可能依赖于数据/bean,您可以使用 @DependsOn("beanName")注解。

    关于spring-mvc - 使用多个 Spring WebMvcConfigurerAdapter 如何控制 Configuration 类的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41025142/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com