标签:begin jdb ati frame 代理 img UI 使用 系统
Spring 官方版的事务控制
事务是数据库(RDB)保证业务操作完整性的一种机制(强一致性)
业务层控制(Service 或Biz 或Business)
如果是JDBC:----Connnection
Connection.setAutoCommit(false)
Connection.commit()
Connection.rollback()
如果是Hibernate ------Session ---SessionFactory
Transaction tx = session.beginTransaction();
Tx.commit();
Tx.rollback();
1) 原始对象(Service 调用Dao完成业务处理)
创建Service接口和ServiceImpl接口(由于Service需要使用Dao所以私有化然后进行注入)
2) 额外功能:
【1】 控制事务的代码MethodInterceptor注入 SessionFactory
【2】 事务属性:
隔离属性,ISOLATION
解决并发问题的特点。
并发(同一时间,多个用户访问相同的数据)
传播属性
事务嵌套:(Service调用其他Service(大型项目中才会有))
普遍(Service-DAO)
PROPAGATION_REQUIRED:当外部不存在事务,则开启事务,
当外部存在事务,则进行融合
增删改方法使用
PROPAGATION_SUPPORTS:当外部不存在事务,则不开启事务
当外部存在事务,则融合事务
查询的时候使用
只读属性,默认是false
如果你的事务是查询的时候,指定read-only 为true 提高系统效率
实战中应该这么写:
异常属性,
Spring 默认对于RuntimeException 及其子类, 回滚策略
Exception 及其子类 提交策略
遇到一个异常的时候如果你想回滚:rollback-for=“异常的全限定名”
如果你不想回滚的的话:no-rollback-for=”异 常的全限定名”
超时属性(timeout)-1
当数据被另一个事务锁住的时候,通过超时属性决定等待时间
3) 切入点
4) 组装切面
开发中应该以包为基础进行切面。
实例:切面和属性
:
标签:begin jdb ati frame 代理 img UI 使用 系统
原文地址:http://www.cnblogs.com/zjAction/p/7219742.html