spring 3.x 实现事务的几种方式(二)

2014-11-24 10:51:11 · 作者: · 浏览: 1
emplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
二、使用XML配置
Spring的数据源设置
[html]
mysql.jdbc.Driver"/>
Spring对iBATIS的支持,Spring对ibatis主要提供org.springframework.orm.ibatis.SqlMapClientFactoryBean类来进行支持
[html]
Spring对iBATIS DAO的支持,Spring提供org.springframework.orm.ibatis.support.SqlMapClientDaoSupport来对iBATIS DAO进行支持,通过调用该类的getSqlMapClientTemplate()方法来获得对iBATIS的控制访问
[html]
这里DefaultBankService类主要实现BankService接口(提供服务的方法定义),其内部引用一个BankAccountDao实例来对数据库进行访问。BankAccountDao类主要继承SqlMapClientDaoSupport。
Spring 配置事务
[html]
配置事务通知
[html]
配置切入点和方面
[html]
上述execution(* com.hj.bankOps.DefaultBankService.*(..))表达式表示切入点为该类中的任何方法。所以当DefaultBankService类中方法调用时就会进行事务管理,并且当抛出RuntimeException时,自动进行回滚操作
此处一定要注意包名和类名的大小写~~
遇到的问题:在一书上,对AOP XML事务配置时,其通知部分并没有设置具体属性(缺少 rollback-for="java.lang.RuntionException")
[html]
这样的写法在DefaultBankService方法调用中如果有异常抛出,事务并不进行相应回滚操作
三、使用注释配置
Spring的数据源设置
[html]
Spring对iBATIS DAO的支持
[html]
对业务类进行事务的标注,例如:@Transactional
[java]
public class OrderMainManagerImpl extends BaseManager implements OrderMainManager {
……
}
Spring 配置事务
[html] www.2cto.com