Solon

十、框架中的排序说明

</> markdown

框架中有两个重要的执行排序概念:index(顺序位),priority(优先级):

1、index(顺序位)

越小,越先执行。(如果是环绕处理,越小,也意味着越外层)。不要用最大值(Integer.MAX_VALUE),一般是框架留用的。目前框架内置的几个注解:

a)显示顺序位

常用注解类型性质顺序位备注
@Tran拦截器环绕处理120
@CachePut拦截器环绕处理110
@CacheRemove拦截器环绕处理110
@Cache拦截器环绕处理111
@Valid拦截器环绕处理1还涉及前置处理器,但无关排序
@DynamicDs拦截器环绕处理100

b)隐式顺序位

  • 所有 LifecycleBean 或 @Init 函数,当有相互依赖时,会自动排序。
  • 所有 @Bean 函数,当有相互依赖时,会自动排序。(v2.5.8 后支持)

2、priority(优先级)

越大,越先执行。

这个在 《插件扩展机制(Spi)》 提到,是用于插件执行顺序的。本来可以统一的,但想给插件一点独特性。

插件太多,不一一列出来了。用户的插件,一般用 1 就可以了