天天看点

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学习目标:学习内容:学习笔记