トランザクション03-トランザクションケース-転送:トランザクションを手動で管理する[SpringのTransactionTemplateを使用した実装](Spring Notes 013)

トランザクションを手動で管理する(SpringのTransactionTemplateトランザクションテンプレートを使用)

1.サービスはTransactionTemplateを取得する必要があり
ます2.Spring構成テンプレートをサービスに注入します
3.テンプレートをトランザクションマネージャーに注入する必要があります
4.トランザクションマネージャーを構成します

AccountServiceImplの転送方法を変更します

//需要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