Spring @Order注释未按正确顺序加载

时间:2017-11-09 08:56:21

标签: java spring tomcat spring-boot

我正在使用Spring Boot嵌入式tomcat 在我的应用程序中,我有三个配置类,我使用@Order注释来控制类的加载顺序。当我在嵌入式Tomcat中运行应用程序时,它工作正常,但在独立的Tomcat(WAR)中,它没有以正确的顺序加载。
我的课程如下:

@Order(1) public Class WebConfig 
@Order(2) public Class SwaggerConfig
@Order(3) public Class PlanoutConfig

1 个答案:

答案 0 :(得分:3)

@Order定义带注释组件的排序顺序,而不是配置类 我想在嵌入式Tomcat模式中,您可以从副作用中受益。

如果您的类是配置类,即类 用@Configuration注释,spring boot documentation表示  你应该赞成@AutoconfigureOrder而不是@Order

  

44.1了解自动配置的bean

     

如果您想订购某些不应具有的自动配置   任何对方的直接知识,你也可以使用   @AutoconfigureOrder。该注释与语义具有相同的语义   常规@Order注释,但提供专用订单   自动配置类。

AutoConfigureOrder

public @interface AutoConfigureOrder
     

自动配置Spring Framework订单的特定变体   注解。允许在其中订购自动配置类   自己不影响传递的配置类的顺序   到AnnotationConfigApplicationContext.register(Class ...)。

你可以写:

@AutoConfigureOrder(0) public Class WebConfig {...}
@AutoConfigureOrder(1) public Class SwaggerConfig {...}
@AutoConfigureOrder(2) public Class PlanoutConfig {...}