事务03-事务案例-转账:手动管理事务[使用Spring 的TransactionTemplate的实现](Spring 笔记013)

手动管理事务(使用Spring 的TransactionTemplate事务模板)

1.Service需要获得TransactionTemplate
2.Spring配置模板,并注入给Service
3.模板需要注入事务管理器
4.配置事务管理器

修改AccountServiceImpl的transfer方法

//需要spring注入模板
private TransactionTemplate transactionTemplate;
public void setTransactionTemplate( TransactionTemplate transactionTemplate)
{
    
    this.transactionTemplate=transactionTemplate;}

public void transfer(final String outer,final String inner,final Intrger money){
    
    
transactionTemplate.execute(new TransactionCallbackwithoutResult(){
    
    
     protected void doInTransactionWithoutResult(TransactionStatus arg0){
    
    
    accountDao.out(outer,money);
    int i=1/0;//断电
    accountDao.in(inner,money);
     }
     }
);//executex新的函数
}

.xml的配置

①DataSource的配置<bean><proprrty></proprrty></bean>
②继承了JdbcDaoSupport的Dao的数据注入方法
<bean id="accountDao" class="~~.AccountDaoImpl"><proprrty name="dataSource" ref="dataSource"></proprrty></bean>
③之前修改的Service(事务处理类)
<bean id="accountService" class="~~.AccountServiceImpl">
<proprrty name="accountDao" ref="accountDao"></proprrty>
<proprrty name="transactionTemplate" ref="transactionTemplate"></proprrty>
</bean><bean id="transactionTemplate" class="~~.transactionTemplate">
<proprrty name="transactionManager" ref="txManager"></proprrty>
</bean><bean id="txManager" class="~~.DataSourceTransactionManager">
<proprrty name="dataSource" ref="dataSource"></proprrty>
</bean>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ResumeProject/article/details/112938832
今日推荐