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);
}
});
}