事务
什么是事务?
保证数据的一致性
事务特效?
原子性
要么成功,要么失败
隔离性
多个事务互不影响
持久性
永久
一致性
转账案例
什么是spring事务?
spring事务分为两种
手动事务(编程事务)
实现原理:手动的去实现获取数据源api,自动封装手动的提交,回滚
声明事务(xml,注解)
原理分析:aop环绕通知 +环绕通知+异常通知 在方法前方法后(方法中异常不要try 要抛出去)
什么是事务传播行为?
事务传递 给内部调用方法
事务的默认传播行为?
required
事务传播行为7种:
- PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
- PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。(如果当前有事物,我就用当前事物,如果当前没有事物,就以非事物进行执行)
- PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
- PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
- PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
- PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。