思路分析:一共需要五步
1.配置事务管理器
2.配置事务的通知
此时我们需要导入事务的约束 tx名称空间和约束
tx:advice标签配置事务通知
属性:
id :事务通知的唯一标识
transaction-manager:给事务通知提供一个事务管理器引用
3.配置aop中的通用切入点表达式
4.在aop中建立事务通知和切入点表达式的对应关系
5.配置事务的属性(在tx:advice)
直接看bean.xml的细节
<!--1.配置事务管理器-->
<bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--2.配置事务的通知-->
<tx:advice id="txAdvice" transaction-manager="dataSourceTransactionManager">
<!--配置事务的属性-->
<tx:attributes>
<tx:method name="*" propagation="REQUIRED"/><!--name="*"全通配 propagation="REQUIRED":增删改有事务-->
<tx:method name="find*" propagation="SUPPORTS" read-only="true"></tx:method><!--name="find*":部分匹配优先级更高 -->
</tx:attributes>
</tx:advice>
<!--3.配置aop中的通用切入点表达式-->
<aop:config>
<aop:pointcut id="pt1" expression="execution(* com.lwh.service.impl.*.*(..))"/>
<!--4.建立事务通知和切入点表达式的对应关系-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"></aop:advisor>
</aop:config>
</beans>
现在再去测转账操作就会有事务控制了
转账失败数据库数据修改失败 进行了回滚