简介

如果你想将在SpringBoot项目中的配置类进行排序,但在配置@AutoConfigureAfter或者是@AutoConfigureOrder注解之后仍不生效,那么你的项目中应该是缺少了spring.factories文件。因为SpringBoot 只会对从这个文件读取到的配置类进行排序。

@AutoConfigureAfter的使用例子

需求,要在加载ConfigurationB之后加载ConfigurationA

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图1

第一步:创建META-INF/spring.factories文件

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图2

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图3

第二步:添加@AutoConfiguteAfter注解
注意:在spring.factories里注册了的配置类,这里的@Configuration可省略

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图4

@AutoConfigureOrder的使用例子

需求:加载顺序C->B->A

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图5

第一步:创建META-INF/spring.factories文件

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图6

第二步:添加@AutoConfigureOrder注解

注意:执行优先级别根据数字决定,数字越小,越优先加载,负数也可以。

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图7

将B中的值设为1,C中的值设为0,就可以做到C->B->A的执行顺序。

控制台输出如下图:

@AutoConfigureAfter和@AutoConfigureOrder的使用 - 图8