-
事务管理
-
核心接口
-
PlatformTransactionManager接口
- TransactionStatus getTransaction(TransactionDefinition definition) 获取事务状态信息
- void commit(TransactionStatus status) 提交事务
- void rollback
-
TransactionDefinition 定义事务
- 事务的隔离级别 MYSQL默认隔离级别 isolation_repeatable_read
- 事务的传播行为 默认是 propagation_required 如果存在一个事务 就加入 如果不存在 就创建新的
- 事务的超时时间 timeout_default 默认-1
- 是否为只读事务 为只读不能修改
-
TransactionStatus 界定事务的状态
-
-
事务管理的方式
- 编程式事务管理
-
声明式事务管理
-
基于XML方式的声明式事务
- 引入tx命名空间
- <tx:advice id="" transaction=""> // 编写对事务的增强的通知
- <tx:attributes>
- <tx: method name="" propagation="" isolation="" read-only=""/> //配置事务的属性
- 编写AOP 让spring自动为目标形成代理
<aop:config> //切入点 <aop:poincut expression="execution(* com.ithema.*.*(...))" id=""/> //切面 将切入点和通知整合 <aop:advisor advice-ref="" pointcut="" /> </aop:config>
!注意:
区别于第八章的切面设置
<aop:config> <aop:pointcut id="" expresstion=""/> <aop:aspect ref="">//设置切面 <aop:before /> </aop:aspect> </aop:config>
- 引入tx命名空间
-
基于注解方式的声明式事务
- 简化配置文件中的代码 提供@Transactional注解实现事务管理
- 修改XML配置文件 注册事务管理器驱动
- <tx:annotation-driven transaction-manager="事务管理器id"/>
- 修改Dao层实现类
- @Transactional(propagation = , isolation = ,readOnly = false)
-
-
Spring事务管理
最新推荐文章于 2024-11-10 21:05:45 发布