在springboot项目中,无需使用@EnableTransactionManagement注解,可以直接在业务方法上添加@Transactional注解,即可;但是如果是单纯的springmvc项目的话,就需要在配置类上添加@EnableTransactionManagement注解来开启全局事务
其实原因也很简单,就是因为springboot项目在启动的时候,帮我们自动添加了@EnableTransactionManagement注解;
在spring-boot-autoconfigure-2.2.2.RELEASE.jar这个jar包中,定义了要自动注入的bean
org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration
但是这个bean的注入,有一个前提条件,必须在DataSourceTransactionManagerAutoConfiguration这个bean注入之后,才会注入TransactionAutoConfiguration
在TransactionAutoConfiguration这个bean中,声明了一个静态内部类:EnableTransactionManagementConfiguration
在其类中,声明了开启事务注解的注释