Spring的xml中配置:
<!--配置事务管理器(必须先把对象先放到spring容器,这里是扫描的,否则事务管理失效)--> <context:component-scan base-package="com.tourInteraction.service.impl"></context:component-scan>
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/> |
**先加载spring的xml,再加载springmvc的xml
再你要调用的方法所在的类(xml配置文件中该类要先放到了spring中再配置事务管理)中写:
@Transactional(propagation = Propagation.REQUIRED , readOnly = false) @Override public int updateConfigure(Configure configure) { // TODO Auto-generated method stub int num = configureDao.updateConfigure(configure); configureDao.addConfigure(configure); return num; } |
注意点: 1. @Transactional注解起作用的方法必须是public类型
2.该方法可能需要抛出异常. (throws Throwable/Exception)
@Transactional里可能要加rollbackFor = Exception.class |
3.确定数据库支持事务(MySQL数据库类型的选择(InnoDB))