1貌踏、編程式事務(wù)管理
在實(shí)際應(yīng)用中很少使用白翻,要手動(dòng)改service層中的代碼
通過(guò)TransactionTemplate手動(dòng)管理事務(wù)
2猜年、使用XML配置聲明式事務(wù)
開(kāi)發(fā)中推薦使用根欧,代碼侵入性最小
Spring的聲明式事務(wù)是通過(guò)AOP實(shí)現(xiàn)的
2.1基于TransactionProxyFactoryBean的方式(不常用,因?yàn)橐獮槊恳粋€(gè)類配置TransactionProxyFactoryBean)
①在applicationContext.xml中配置transactionManager事務(wù)管理器
②為service生成代理類(主要包括事務(wù)管理器屎慢、屬性瞭稼、目標(biāo)類等)
③屬性有
<prop key=" * ">propagation(傳播行為),isolation(隔離級(jí)別),readOnly(只讀事務(wù)),-Exception(回滾),+Exception(不回滾)</prop>
2.2基于AspectJ的XML方式(常用,可配置在某些類下的所有子類腻惠,在業(yè)務(wù)層不需要添加什么)
①配置事務(wù)管理器
②配置事務(wù)的通知(事務(wù)的增強(qiáng))
③配置切面(包括切入點(diǎn)环肘、切面)
2.2基于注解的方式(常用,配置簡(jiǎn)單集灌,但需要在業(yè)務(wù)層添加@Transactional注解)
在業(yè)務(wù)實(shí)現(xiàn)類上加上@Transactional注解悔雹,它有一些屬性复哆,寫(xiě)在后面的()中,例如:
@Transactional(propagation=propagation.required,RollbackFor,noRollbackFor)
①配置事務(wù)管理器
②開(kāi)啟注解事務(wù)