1.使用xml配置的的方式
(1)
(2)配置一个事务管理器,使用aop来管理
2.使用注解的方式实现
对应的实现类上贴上@Transactional注解即可,对应的细节在注解中操作即可
备注;附上事务方法的属性细节
事务方法属性:
1,name:匹配到的方法模式;
2,read-only:如果为true,开启一个只读事务,只读事务的性能较高,但是不能再只读事务中,使用DML;
3,isolation:代表数据库事务隔离级别(就使用默认)
DEFAULT:让spring使用数据库默认的事务隔离级别;
其他:spring模拟;
4,no-rollback-for: 如果遇到的异常是匹配的异常类型,就不回滚事务;
5,rollback-for:如果遇到的异常是指定匹配的异常类型,才回滚事务;
spring默认情况下,spring只会去回滚RuntimeException及其子类,不会回滚Exception和Thowable.
6,propagation:事务的传播方式(当一个方法已经在一个开启的事务当中了,应该怎么处理自身的事务)
(1),REQUIRED(默认的传播属性):如果当前方法运行在一个没有事务环境的情况下,则开启一个新的事务,如果当前方法运行在一个已经开启了的事务里面,把自己加入到开启的那个事务中
(2),REQUIRES_NEW:不管当前方法是否运行在一个事务空间之内,都要开启自己的事务
事务的传播规则: