-
事務(wù):是指邏輯上的一組操作,這組操作要么全部成功,要么全部失敗。 事務(wù)的特性: 原子性:是指事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。 一致性指事務(wù)前后數(shù)據(jù)的完整性必須保持一致。 隔離性是指多個(gè)用戶并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),一個(gè)用戶的事務(wù) 不能被其他用戶的事務(wù)所干擾,多個(gè)并發(fā)事務(wù)之間數(shù)據(jù)要互相隔離。 持久性是指一個(gè)事務(wù)一旦被提交了,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就是永久性的,即使數(shù)據(jù)庫(kù)發(fā)生故障也不應(yīng)該對(duì)其有任何影響。查看全部
-
事務(wù)傳播的行為 分為3類:1-3,4-6,7(主要記住1和4)查看全部
-
事務(wù)的傳播行為圖查看全部
-
Spring事務(wù)管理高層抽象常用的3個(gè)接口 PlatformTransactionManager 事務(wù)管理器(提交、回滾) TransactionDefinition 事務(wù)定義信息(隔離、傳播、超時(shí)、只讀) TransactionStatus 事務(wù)具體運(yùn)行狀態(tài)查看全部
-
事務(wù):是指邏輯上的一組操作,這組操作要么全部成功,要么全部失敗。 事務(wù)的特性: 原子性:是指事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。 一致性指事務(wù)前后數(shù)據(jù)的完整性必須保持一致。 隔離性是指多個(gè)用戶并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),一個(gè)用戶的事務(wù) 不能被其他用戶的事務(wù)所干擾,多個(gè)并發(fā)事務(wù)之間數(shù)據(jù)要互相隔離。 持久性是指一個(gè)事務(wù)一旦被提交了,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就是永久性的,即使數(shù)據(jù)庫(kù)發(fā)生故障也不應(yīng)該對(duì)其有任何影響。查看全部
-
Spring事務(wù)管理查看全部
-
聲明式事務(wù)管理 二:基于aspdej 1.配置事務(wù)管理器。 2.配置tx通知。 3.配置aop切面查看全部
-
聲明式事務(wù)管理 一: 1.配置事務(wù)管理器。 2.將需要事務(wù)管理的service類進(jìn)行增強(qiáng)(增強(qiáng)類中,再配置食物管理器、目標(biāo)service、事務(wù)的屬性等)。查看全部
-
編程式事務(wù)管理: 1.配置事務(wù)管理器(datasource...) 2.配置事務(wù)模版(TransactionTemplate)查看全部
-
事務(wù)特性: 1.原子性 2.一致性 3.隔離性 4.持久性查看全部
-
事務(wù)傳播行為查看全部
-
總結(jié): Spring將事務(wù)管理分成了兩類: * 編程式事務(wù)管理 - 手動(dòng)編寫代碼進(jìn)行事務(wù)管理(很少使用) * 聲明式事務(wù)管理 - 基于TransactionProxyFactoryBean的方式(很少使用) . 需要為每個(gè)進(jìn)行事務(wù)管理的類,配置一個(gè)TransactionProxyFactoryBean進(jìn)行增強(qiáng) - 基于AspectJ的xml方式(經(jīng)常使用) . 一旦配置好,類上不需要添加任何東西 - 基于注解(經(jīng)常使用) . 配置簡(jiǎn)單,需要在業(yè)務(wù)層類上添加一個(gè)@Transactionl的注解查看全部
-
聲明式事務(wù)管理方式三:基于注解的方式 1.applicationContext.xml配置 <!-- 開啟注解事務(wù) --> <tx:annotation-driven transaction-manager="transactionManager" ></tx:annotation> 2.在Service層中使用注解 /* * @Transactional 注解中的屬性 * propagation :傳播行為 * isolation :隔離級(jí)別 * read-only :只讀 * rollback-for :發(fā)生哪些異常時(shí)回滾 * no-rollback-for :發(fā)生哪些異常時(shí)不回滾 * timeout :過(guò)期信息 */ @Transactional public class AccountServiceImpl implements AccountService { ... }查看全部
-
聲明式事務(wù)管理方式二:基于AspectJ的XML方式 applicationContext.xml配置 <!-- 配置事務(wù)的通知(事務(wù)的增強(qiáng)) --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- propagation :傳播行為 isolation :隔離級(jí)別 read-only :只讀 rollback-for :發(fā)生哪些異常時(shí)回滾 no-rollback-for :發(fā)生哪些異常時(shí)不回滾 timeout :過(guò)期信息 --> <tx:method name="transfer" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <!-- 配置aop切面 --> <aop:config> <!-- 配置切入點(diǎn) --> <aop:pointcut expression="execution(* com.imooc.spring.demo3.AccountService+.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config>查看全部
-
聲明式事務(wù)管理方式一:基于TransactionProxyFactoryBean的方式 測(cè)試類 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext2.xml") public class SpringDemo2 { /* * 注入代理類,因?yàn)榇磉M(jìn)行了增強(qiáng)操作 */ // @Resource(name="accountService") @Resource(name="accountServiceProxy") private AccountService accountService; @Test public void demo1(){ accountService.transfer("aaa", "bbb", 200d); } }查看全部
舉報(bào)
0/150
提交
取消