1、Spring基于XML的声明式事务控制(常用)
步骤:
- 配置事务管理器
- 配置事务通知
- 配置切入点表达式
- 配置切入点与事务通知的依赖关系
- 配置事务的属性
<context:component-scan base-package="com.demo"></context:component-scan>
<bean id="jdbcutils" class="com.demo.utils.JDBCUtils"></bean>
<bean id="poolDataSource" factory-bean="jdbcutils" factory-method="getDataSource"></bean>
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="poolDataSource"></property>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="pt" expression="execution(* com.demo.service.impl.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pt"></aop:advisor>
</aop:config>
2、Spring基于注解的声明式事务控制
步骤:
- 配置事务管理器
- 开启Spring的注解事务控制支持
- 在需要事务控制支持的类上进行@Transactional注解
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="poolDataSource"></property>
</bean>
<tx:annotation-driven transaction-manager="txManager"></tx:annotation-driven>