1、Spring的事务机制
1.1、所有的 数据访问技术 都有事务处理机制,这些技术 提供了API 用来 开启事务、提交事务 完成数据操作(异常时事务回滚);
1.2、Spring的事务机制 :用统一的机制 来处理 不同的数据访问技术 的事务处理;
1.3、Spring的事务机制 提供了一个 PlatformTransactionManager接口,不同的 数据访问技术 使用 不同的接口实现:
2、Spring的声明式事务
2.1、Spring支持 声明式事务,即 使用注解@Transactional 在方法上 表明该方法需要 事务支持;
被注解的方法 在被调用时,Spring开启一个新的事务,当方法无异常运行结束后,Spring会提交这个事务;
@Transactional 该注解位于 org.springframework.transaction.annotation包下;
@Transactional public void test(){ }
2.2、Spring提供了 @EnableTransactionManagement 在配置类上 开启 声明式事务 的支持;
使用了 @EnableTransactionManagement 后,Spring容器 会 自动扫描 注解@Transactional 的方法、类;
3、注解事务行为
@Transactional 定义了propagation、isolation、timeout、readOnly、rollbackFor、noRollbackFor 来定制事务行为:
·······
4、类级别使用@Transactional
4.1、@Transactional 不仅 可以用在方法上 ,还 可以使用在类上;
4.2、@Transactional 注解在类上时,整个类的所有public方法都是开启事务的;
如果 类级别、方法级别 同时使用@Transactional,类级别 会 重载方法级别;