-
事务:是指逻辑上的一组操作,这组操作要么全部成功,要么全部失败。 事务的特性: 原子性:是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性指事务前后数据的完整性必须保持一致。 隔离性是指多个用户并发访问数据库时,一个用户的事务 不能被其他用户的事务所干扰,多个并发事务之间数据要互相隔离。 持久性是指一个事务一旦被提交了,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。查看全部
-
事务传播的行为 分为3类:1-3,4-6,7(主要记住1和4)查看全部
-
事务的传播行为图查看全部
-
Spring事务管理高层抽象常用的3个接口 PlatformTransactionManager 事务管理器(提交、回滚) TransactionDefinition 事务定义信息(隔离、传播、超时、只读) TransactionStatus 事务具体运行状态查看全部
-
事务:是指逻辑上的一组操作,这组操作要么全部成功,要么全部失败。 事务的特性: 原子性:是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性指事务前后数据的完整性必须保持一致。 隔离性是指多个用户并发访问数据库时,一个用户的事务 不能被其他用户的事务所干扰,多个并发事务之间数据要互相隔离。 持久性是指一个事务一旦被提交了,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。查看全部
-
Spring事务管理查看全部
-
声明式事务管理 二:基于aspdej 1.配置事务管理器。 2.配置tx通知。 3.配置aop切面查看全部
-
声明式事务管理 一: 1.配置事务管理器。 2.将需要事务管理的service类进行增强(增强类中,再配置食物管理器、目标service、事务的属性等)。查看全部
-
编程式事务管理: 1.配置事务管理器(datasource...) 2.配置事务模版(TransactionTemplate)查看全部
-
事务特性: 1.原子性 2.一致性 3.隔离性 4.持久性查看全部
-
事务传播行为查看全部
-
总结: Spring将事务管理分成了两类: * 编程式事务管理 - 手动编写代码进行事务管理(很少使用) * 声明式事务管理 - 基于TransactionProxyFactoryBean的方式(很少使用) . 需要为每个进行事务管理的类,配置一个TransactionProxyFactoryBean进行增强 - 基于AspectJ的xml方式(经常使用) . 一旦配置好,类上不需要添加任何东西 - 基于注解(经常使用) . 配置简单,需要在业务层类上添加一个@Transactionl的注解查看全部
-
声明式事务管理方式三:基于注解的方式 1.applicationContext.xml配置 <!-- 开启注解事务 --> <tx:annotation-driven transaction-manager="transactionManager" ></tx:annotation> 2.在Service层中使用注解 /* * @Transactional 注解中的属性 * propagation :传播行为 * isolation :隔离级别 * read-only :只读 * rollback-for :发生哪些异常时回滚 * no-rollback-for :发生哪些异常时不回滚 * timeout :过期信息 */ @Transactional public class AccountServiceImpl implements AccountService { ... }查看全部
-
声明式事务管理方式二:基于AspectJ的XML方式 applicationContext.xml配置 <!-- 配置事务的通知(事务的增强) --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- propagation :传播行为 isolation :隔离级别 read-only :只读 rollback-for :发生哪些异常时回滚 no-rollback-for :发生哪些异常时不回滚 timeout :过期信息 --> <tx:method name="transfer" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <!-- 配置aop切面 --> <aop:config> <!-- 配置切入点 --> <aop:pointcut expression="execution(* com.imooc.spring.demo3.AccountService+.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config>查看全部
-
声明式事务管理方式一:基于TransactionProxyFactoryBean的方式 测试类 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext2.xml") public class SpringDemo2 { /* * 注入代理类,因为代理进行了增强操作 */ // @Resource(name="accountService") @Resource(name="accountServiceProxy") private AccountService accountService; @Test public void demo1(){ accountService.transfer("aaa", "bbb", 200d); } }查看全部
举报
0/150
提交
取消