一、Spring Data JPA的事务支持
从org.springframework.data.jpa.repository.support.SimpleJpaRepository的源代码中看出,Spring Data JPA对所有的默认接口方法都开启了事务支持,并且对查询类事务默认启用readOnly。
二、Spring Boot的事务支持
在Spring Boot中,自动配置了事务管理器,并自动开启了注解事务的支持。
1.自动配置的事务管理器
在使用JDBC访问数据库时,Spring Boot定义了DataSourceTransactionManager的Bean(org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration)。
在使用JPA访问数据库时,Spring Boot定义了PlatformTransactionManager的实现
JpaTransactionManager的Bean(org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration)。
从上述源码可以看出,如果添加的是spring-boot-starter-jdbc依赖,框架会默认注入DataSourceTransactionManager实例。如果添加的是spring-boot-starter-data-jpa依赖,框架会默认注入JpaTransactionManager实例。
2.自动开启注解事务的支持
Spring Boot使用org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration类配置事务的支持,并在该类中自动开启注解事务的支持。

