天天看點

SSM學習-Day9學習目标:學習内容:學習筆記

學習目标:

掌握SSM知識

學習内容:

1、Spring的事務控制

對應Spring_Demo中的day9_spring_tx項目

學習筆記

1 程式設計式事務控制相關對象

1.1 PlatformTransactionManager

  • 平台事務管理器

1.2 TransactionDefinition

  • 事務定義對象
SSM學習-Day9學習目标:學習内容:學習筆記
SSM學習-Day9學習目标:學習内容:學習筆記

1.3 TransactionStatus

  • 事務狀态

2 基于XML的聲明式事務控制

2.1 什麼是聲明式事務控制

SSM學習-Day9學習目标:學習内容:學習筆記

2.2 聲明式事務控制快速入門

<!--    配置一個平台事務管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

<!--    通知 事務的增強-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!--        設定事務屬性資訊-->
    <tx:attributes>
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>

<!--    配置事務的AOP織入-->
<aop:config>
    <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.example.service.impl.*.*(..))"></aop:advisor>
</aop:config>
           

applicationContext.xml

@Override
public void transfer(String outMan, String inMan, double money) {
    //開啟事務
    accountDao.out(outMan,money);
    int i = 1/0;
    accountDao.in(inMan, money);
    //送出事務
}
           

AccountServiceImpl.java

2.3 切點方法的事務參數的配置

SSM學習-Day9學習目标:學習内容:學習筆記

3 基于注解的聲明式事務控制

3.1 快速入門

<!--    配置一個平台事務管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>

<!--    事務的注解驅動-->
<tx:annotation-driven transaction-manager="transactionManager"/>
           

applicationContext.xml

@Transactional
public void transfer(String outMan, String inMan, double money) {}
           

AccountServiceImpl.java

3.2 注解配置聲明式事務控制解析

SSM學習-Day9學習目标:學習内容:學習筆記