spring配置事务管理,配置文件和注解

不同的事务有不同的管理器 记得要引入tx.jar包 事务就是回滚
链接:https://pan.baidu.com/s/1dESiSVYNdx_H44B7koslkw
提取码:42tb
基于XML:

第一步:配置事务管理器   进而对那个数据库进行操作    那个数据库就是引入链接数据库的dataSource

<!-- 回滚 第一步创建事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 注入dataSource 意思是事务对那个数据库进行操作            他是事务操作 要让他知道他是对那个事务进行操作   对那个数据库进行操作-->
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	
第二步: 配置事务增强                        配置事务管理器    以为第一步是创建事务管理器 并没有应用上

<!-- transaction-manager="transactionManager:意思是指定用的是那个事务管理器                           意思是用的是那个事务管理器-->

	<tx:advice id="txadvice" transaction-manager="transactionManager">
		<!-- 下面是 做事务操作                     意思是对那种方法进行增强  那种方法可以应用事务管理器-->
		<tx:attributes><!-- attributes:属性的意思 -->
			<!-- 设置进行事务操作的方法匹配的规则 -->
			<!-- propagation="REQUIRES_NEW:意思是设置隔离级别 可以设置也可以不设置 -->
			
			<tx:method name="account*" propagation="REQUIRES_NEW"/><!-- 业务的方法 只要是account开头的都进行操作  什么样的方法进行匹配 -->
		</tx:attributes>
	</tx:advice>
	
	
第三步:配置切面              advice:增强      ref:位置 advice-ref="txadvice" 意思是那个增强    这里是  tx:advice id="txadvice"

<aop:config>
		<!-- 切入点 pointcut:切入点-->
		<aop:pointcut expression="execution(* UserService.UserService.*(..)) id="pointcut1"/>
		<!-- 切面 advice-ref:用的是那个增强-->
		<aop:advisor advice-ref="txadvice" pointcut-ref="pointcut1"/>
		<!-- 这里的意思是把 那个增强用到那个切入点上 -->
	</aop:config>

实例:

<!-- 回滚 第一步创建事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 注入dataSource 意思是事务对那个数据库进行操作 -->
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 第二步 配置事务的增强 advice:增强-->
	<!-- transaction-manager="transactionManager:意思是指定用的是那个事务管理器 -->
	<tx:advice id="txadvice" transaction-manager="transactionManager">
		<!-- 下面是 做事务操作 -->
		<tx:attributes><!-- attributes:属性的意思 -->
			<!-- 设置进行事务操作的方法匹配的规则 -->
			<!-- propagation="REQUIRES_NEW:意思是设置隔离级别 可以设置也可以不设置 -->
			<tx:method name="account*" propagation="REQUIRES_NEW"/><!-- 业务的方法 只要是account开头的都进行操作  什么样的方法进行匹配 -->
		</tx:attributes>
	</tx:advice>
	
	<!-- 第三步 配置切面 -->
	<aop:config>
		<!-- 切入点 pointcut:切入点-->
		<aop:pointcut expression="execution(* UserService.UserService.*(..)) id="pointcut1"/>
		<!-- 切面 advice-ref:用的是那个增强-->
		<aop:advisor advice-ref="txadvice" pointcut-ref="pointcut1"/>
		<!-- 这里的意思是把 那个增强用到那个切入点上 -->
	</aop:config>

注解形式:
一共就三步

第一步:配置事务管理器  里面注入dataSource 声明是对那个数据库进行操作

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 注入dataSource 意思是事务对那个数据库进行操作 -->
		<property name="dataSource" ref="dataSource"></property>
	</bean>

第二步:配置事务注解    相当于扫描 和用的那个事务管理器的作用

<!-- 第二步  配置事务注解 也就是开启扫描 -->   transaction-manager="transactionManager:用的是那个事务管理器
<tx:annotation-driven transaction-manager="transactionManager"/>

第三步:在事务方法         的                类上      加一个事务的注解

@Transactional  // 该注解会对类里面所有的方法都添加事务操作

实例:

<!-- 声明式事务管理 注解方式 -->
	<!-- 回滚 第一步创建事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 注入dataSource 意思是事务对那个数据库进行操作 -->
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 第二步  配置事务注解 也就是开启扫描 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>
	
	<!-- 第三步 要在业务上方法所在类上添加注解 只要是类里面的方法都会事务的部分 -->
	<!-- @Transactional -->
@Transactional
public class UserService {//意思是UserService下所有的方法都加上了事务
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值