Spring4复习之Spring 对事务的支持

今日目录:

       1、事务简介

       2、编程式事务管理

       3、声明式事务管理

       4、事务传播行为

 

一、事务简介

       满足以下四个条件:

第一:原子性;

第二:一致性;

第三:隔离性;

扫描二维码关注公众号,回复: 2564278 查看本文章

第四:持久性;

 

二、编程式事务管理

       Spring 提供的事务模版类:

org.springframework.transaction.support.TransactionTemplate

事务管理器:org.springframework.jdbc.datasource.DataSourceTransactionManager

三、声明式事务管理

       1、使用 XML 配置声明式事务;(工作中推荐使用这个)

2、使用注解配置声明式事务;

四、事务传播行为

       事务传播行为:Spring 中,当一个 service 方法调用另外一个 service 方法的时候,因为每个 service 方法都有事务,这时候就出现了事务的嵌套;由此,就产生了事务传播行为;

在 Spring 中,通过配置 Propagation,来定义事务传播行为;

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

 

<tx:attributes>

<tx:method name="insert*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<tx:method name="edit*" propagation="REQUIRED" />

<tx:method name="save*" propagation="REQUIRED" />

<tx:method name="add*" propagation="REQUIRED" />

<tx:method name="new*" propagation="REQUIRED" />

<tx:method name="set*" propagation="REQUIRED" />

<tx:method name="remove*" propagation="REQUIRED" />

<tx:method name="delete*" propagation="REQUIRED" />

<tx:method name="change*" propagation="REQUIRED" />

<tx:method name="get*" propagation="REQUIRED" read-only="true" />

<tx:method name="find*" propagation="REQUIRED" read-only="true" />

<tx:method name="load*" propagation="REQUIRED" read-only="true" />

<tx:method name="*" propagation="REQUIRED" read-only="true" />

</tx:attributes>

 

BankDaoImpl.java

BankDao.java

BankServiceImpl.java

BankService.java

T.java

Beans.xml

jdbc.properties

要用到的工具,视频教程,关注公众号(Java学习之乐)直接免费获取:

猜你喜欢

转载自blog.csdn.net/wtyicy/article/details/81364749