源头说明

  1. 注解一般都是需要切面类来根据注解加上adviser的,我们的transaction也不例外。
  2. 正常我们的事务启用是需要加上EnableTransactionManagement,这个注解的作用是初始化切面的。
  3. 但是我们在spring boot项目中是没加上对应注解的,这是因为,spring boot有 自动化配置类列表,里面有一个TransactionAutoConfiguration
    配置类在这个配置类里加有  @EnableTransactionManagement(proxyTargetClass = true)这种注解,同理,我们可以想到 @Async  @EnableAsync. 自动配置类 TaskExecutionAutoConfiguration

初始化类的流程图