关于Springboot注解声明事务切面优先级的小测试

咱们都知道,SpringBoot数据库事务是基于切面实现的,咱们常常在自定义切面实现一些数据库操做,这些操做受不受Spring事务管理勒,怎么控制咱们本身切面和事务切面的优先级关系,我作了些测试。数据库

前提:事务和切面的实现都采起注解实现,这也是咱们当前最经常使用的。测试

就不贴测试过程了,有点弱。测试结论以下:事务

  • @Order用于定义切面类优先级,order的value为Int,其值越低,越先执行,越后出来。
  • @Order默认值为2147483647,不加@Order的切面其值能够理解为也为2147483647(int类型最大值)。
  • 事务切面的优先级能够理解为就是2147483647,可是事务的优先级在order为2147483647中优先级最高的。

结论:要想自定义切面在事务里运行,不加@Order就行了,若是想在外面执行,加上order注解并随意指定一个值只要小于2147483647就行了。数据

相关文章
相关标签/搜索