下面是关于spring 事务的处理学习
一、在applicationContext中配置
1、配置事务数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- <property name="initialSize" value="10" /> <property name="maxActive" value="50" /> --> </bean>
2、事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="dataSource" /> </property> </bean>
3、加载事务管理器
<bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager" /> <property name="proxyTargetClass" value="true" /> <property name="transactionAttributes"> <props> <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="fetch*">PROPAGATION_REQUIRED</prop> <prop key="rank*">PROPAGATION_REQUIRED</prop> </props> </property> </bean>
4、利用继承简化事务管理的配置
<bean id="userService" parent="baseTxService"> <property name="target"> <bean class="com.bbs.sys.service.UserService" /> </property> </bean>
扫描二维码关注公众号,回复:
300725 查看本文章
二、事务配置在Service中的使用
package sty.serviceImpl; public class userService implements TicketService { private DataSource dataSource; public void insert() { boolean flag = true; try { jt.update("insert into user value(2,'yuna','032012')"); if(flag) { throw new Exception("my exception");//抛出异常 } System.out.println("over"); } catch (Exception e) { System.out.println("exception"); e.printStackTrace(); } } }
这里是不会进行事务回滚的,因为,自己捕获抛出了异常
详情请看四