版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京传智播客教育事务管理李若亮北京传智播客教育事务管理J2EE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案Spring事务管理主要包括3个接口PlatformTransactionManager事务管理器TransactionDefinition事务定义信息TransactionStatus事务具体运行状态北京传智播客教育PlatformTransactionManagerPlatformTransactionManager接口提供事务操作的方法,包含有3个具体的操作获取事务状态信息TransactionStatusgetTransaction(TransactionDefinitiondefinition)提交事务voidcommit(TransactionStatusstatus)
回滚事务voidrollback(TransactionStatusstatus)
北京传智播客教育常用平台事务管理器DataSourceTransactionManager使用SpringJDBC或iBatis进行持久化数据时使用HibernateTransactionManager
使用Hibernate3.0版本进行持久化数据时使用JpaTransactionManager使用JPA进行持久化时使用JdoTransactionManager 当持久化机制是Jdo时使用JtaTransactionManager 使用JTA实现管理事务,在一个事务跨越多个资源时必须使用北京传智播客教育TransactionDefinitionTransactionDefinition接口提供事务相关信息的获取方法,包含有5个具体的操作获取事务对象名称StringgetName()获取事务隔离级intgetIsolationLevel()获取事务传播行为intgetPropagationBehavior()获取事务超时时间intgetTimeout()获取事务是否只读booleanisReadOnly()北京传智播客教育TransactionStatusTransactionStatus接口描述了某个时间点上事务对象的状态信息,包含有6个具体的操作刷新事务voidflush()获取是否是否存在存储点booleanhasSavepoint()获取事务是否完成booleanisCompleted()获取事务是否为新的事务booleanisNewTransaction()获取事务是否回滚 设置事务回滚booleanisRollbackOnly()
voidsetRollbackOnly()北京传智播客教育事务隔离级事务隔离级反映事务提交并发访问时的处理态度ISOLATION_DEFAULT默认级别,归属下列某一种ISOLATION_READ_UNCOMMITTED可以读取未提交数据ISOLATION_READ_COMMITTED只能读取已提交数据,解决脏读问题(Oracle默认级别)ISOLATION_REPEATABLE_READ是否读取其他事务提交修改后的数据,解决不可重复读问题(MySQL默认级别)ISOLATION_SERIALIZABLE是否读取其他事务提交添加后的数据,解决幻影读问题北京传智播客教育Spring事务管理方式Spring提供两种事务管理范式编程式事务管理通过代码进行,利用TransactionTemplate,开发中几乎不使用声明式事务管理通过配置文件对事务进行管理,基于AOP思想完成,开发主流XML配置格式注解格式北京传智播客教育编程式事务管理(了解)编程式事务管理是通过代码编程的形式来控制事务案例:银行转账业务用户tom与jerry两个账号间进行转账操作数据库表结构及其数据
CREATETABLE`tbl_account`(`uuid`bigint(10)NOTNULL,`name`varchar(30)NOTNULL,`money`double(10,2)NOTNULL,PRIMARYKEY(`uuid`) )ENGINE=InnoDBDEFAULTCHARSET=utf8; INSERTINTO`tbl_account`VALUES('1','tom','1000.00'); INSERTINTO`tbl_account`VALUES('2','jerry','1000.00');北京传智播客教育银行转账案例创建工程,导入jar包核心包4个日志2个AOP4个JDBC2个测试1个MySQL数据库驱动1个北京传智播客教育数据层接口开发数据层接口定义进账与出账两个操作实际业务中不可能是两个操作,而是同一操作,数据层方法是不具有业务含义的北京传智播客教育数据层实现开发数据层实现类根据要求实现接口方法使用JdbcTemplate进行开发,继承JdbcDaoSupport需要为其注入DataSource(配置中完成)北京传智播客教育业务逻辑层接口开发逻辑层接口定义银行转账业务实际开发银行转账业务不可能是一个简单的A到B的过程,此处仅仅为知识学习做次设计,不要理解为真实业务北京传智播客教育业务逻辑层实现开发业务逻辑层实现类根据要求实现接口方法由于业务逻辑层需要使用数据层接口,因此为该类定义数据层接口成员变量,并使用Spring为其注入对应的实现类北京传智播客教育配置Bean配置业务逻辑层、数据层及数据源相关Bean北京传智播客教育开发应用程序表现层模拟Web层提交数据案例模型搭建完成北京传智播客教育编程式事务管理在没有为业务逻辑层添加事务前,调用数据层的操作,每个操作是一个独立的事务,事务针对不是业务,而是数据层操作使用TransactionTemplate管理业务层事务为业务逻辑层实现注入TransactionTemplate对象北京传智播客教育配置事务管理模板事务管理模板是工具类,实现事务管理功能需要使用具体事务管理器进行真正的事务管理。事务管理器的选择需要对应当前使用技术进行选择(PPT_4)事务管理器依赖数据库连接对象,为其注入数据源对象北京传智播客教育编程式事务管理在业务层,将归属同一个事务的操作封装到事务管理模板对应的操作中,实现同一事务管理操作编程式事务管理过于繁琐,实际开发中没有实用性归属于同一个事务的操作放置到doInTransactionWithoutResult方法中北京传智播客教育声明式事务管理(重点)编程式事务管理将数据层提交事务的代码加入到逻辑层,与Spring无侵入式编程的主思想有冲突,实际开发过程中,往往采用声明式事务管理形式通过编程式事务管理的代码不难看出,在业务逻辑层对应的业务上添加某些代码即可完成整体事务管理的操作,使用SpringAOP的思想,将公共的代码加入后,即可完成对应的工作,这就是声明式事务管理的核心机制。北京传智播客教育声明式事务管理(重点)使用tx命名空间,完成声明式事务在配置文件中,引入tx与aop命名空间北京传智播客教育声明式事务管理(重点)使用tx命名空间定义事务管理的AOP北京传智播客教育声明式事务管理(重点)使用tx命名空间声明一个通知<tx:adviceid="txAdvice"transaction-manager="txManager"> <tx:attributes> <tx:methodname="transfer"/> </tx:attributes></tx:advice>tx:advice:定义事务管理的通知(环绕通知)transaction-manager:声明事务管理的实现类tx:method:定义参与事务管理的方法北京传智播客教育tx:method的参数tx:method共拥有7个参数参数名实例作用namename=“get*”定义参与事务管理的方法,支持通配符timeouttimeout=-1定义事务超时时间,-1为永不超时read-onlyread-only=“false”定义事务种类为只读事务或读写事务no-rollback-for异常名称定义不参与事务回滚的异常名rollback-for异常名称定义参与事务回滚的异常名isolationIsolation定义事务隔离级propagationpropagation定义事务的传播属性北京传智播客教育事务传播属性事务传播属性反映了当前操作对事务的需求传播属性事务管理者事务协调者REQUIREDT1T1无TREQUIRES_NEWT1T2无TSUPPORTST1T1无无NOT_SUPPORTEDT1无无无MANDATORYT1T1无ERRORNEVERT1ERROR无无NESTED设置savePoint,一旦事务回滚,事务将回滚到savePoint处,交由客户响应提交/回滚北京传智播客教育注解式事务管理(重点)Spring支持注解式事务管理@Transactional功能:为类/接口或其中的方法添加事务管理位置:类/接口定义上方或者方法定义上方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高纯试剂工创新思维知识考核试卷含答案
- 汽车焊装生产线操作工操作评估强化考核试卷含答案
- 皮革护理师岗前设备维护考核试卷含答案
- 云计算流程优化探讨
- 预应力空心方桩施工方案
- 食堂运营项目施工技术方案
- 高低压柜变压器安装施工方案
- 《中国古典缸花插花能力评价规范》编制说明
- 2026年餐饮服务标准操作流程培训
- 2026年招远辅警考试题库参考答案
- 现在完成时复习课课件+2025-2026学年外研版八年级英语下册
- 2025至2030中国智能语音助手用户接受度与隐私保护研究报告
- 齐成控股集团招聘笔试题库2026
- 菏泽医专综评试题及答案
- 2026年交管12123驾照学法减分题库(考试直接用)
- 国企投融资课件
- 配送管理实务说课
- 全国项目管理标准体系建设指南(2025版)
- 三级安全培训再教育课件
- 电子物料基础知识培训课件
- 2025年GCP(药物临床试验质量管理规范)相关知识考试题与答案
评论
0/150
提交评论