1. 程式人生 > >Spring框架的事務管理之程式設計式的事務管理(瞭解)

Spring框架的事務管理之程式設計式的事務管理(瞭解)

1. 說明:Spring為了簡化事務管理的程式碼:提供了模板類 TransactionTemplate,所以手動程式設計的方式來管理事務,只需要使用該模板類即可!

2. 手動程式設計方式的具體步驟如下:

1. 步驟一:配置一個事務管理器,Spring使用PlatformTransactionManager介面來管理事務,所以咱們需要使用到他的實現類!!

<!-- 配置事務管理器 -->

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

</bean>

2. 步驟二:配置事務管理的模板

<!-- 配置事務管理的模板 -->

<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">

<property name="transactionManager" ref="transactionManager"/>

</bean>

3. 步驟三:在需要進行事務管理的類中,注入事務管理的模板.

<bean id="accountService" class="com.itheima.demo1.AccountServiceImpl">

<property name="accountDao" ref="accountDao"/>

<property name="transactionTemplate" ref="transactionTemplate"/>

</bean>

4. 步驟四:在業務層使用模板管理事務:

// 注入事務模板物件

private TransactionTemplate transactionTemplate;

public void setTransactionTemplate(TransactionTemplate transactionTemplate) {

this.transactionTemplate = transactionTemplate;

}

public void pay(final String out, final String in, final double money) {

transactionTemplate.execute(new TransactionCallbackWithoutResult() {

protected void doInTransactionWithoutResult(TransactionStatus status) {

// 扣錢

accountDao.outMoney(out, money);

int a = 10/0;

// 加錢

accountDao.inMoney(in, money);

}

});

}