Spring学习-day04事务控制

1 事务概述

   1.1 事务控制的2种方式

        手动编程实现

         声明式实现:spring提供了对事务的管理,实现的核心是AOP,通过配置文件的配置,在执行代码的过程中,动态植入事务控制,

对某个方法执行事务控制,不能对方法里的某几行代码进行事务控制,是粗粒度事务控制

   .1.2声明式事务管理实现的2种方式

          aXML配置实现

          b注解实现

   2 XML实现声明式事务

          spring针对jdbc和hibernate有不同的事务管理器类

          jdbc:DatasourceTrsnsactionManager

         hibernate:HibernateTransactionManager

     xml配置事务管理步骤:

       不要忘记引入事务名称空间

        a配置事务管理器类

//这里是进行JDBC操作,所以事务管理器类是DataSourceTransactionManager
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        //第一个dataSource是类中setDataSource的属性名,第2个dataSource是引用配置中的dataSource
		<property name="dataSource" ref="dataSource"></property>
</bean>

        b 配置事务增强(如何管理事务,是只读还是读写

<!-- 5.2 配置事务增强(如果管理事务?) -->
	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="find*" read-only="true"/>
			<tx:method name="*" read-only="false"/>
		</tx:attributes>
	</tx:advice>

         c AOP配置:拦截哪些方法(切入点表达式)+应用上面的事务增强

<!-- 5.3 Aop配置: 拦截哪些方法(切入点表表达式) + 应用事务增强配置 -->
	<aop:config>
       //*表示返回值类型任意
		<aop:pointcut expression="execution(* cn.itcast.a_tx.DeptService.*())" id="pt"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>
	</aop:config>

3 注解实现事务控制

 3.1  必须引入Aop相关的jar文件

3.2 bean.xml中指定注解方式实现声明式事务管理以及应用的事务管理器类

    <!-- 开启注解扫描 -->
	<context:component-scan base-package="cn.itcast.b_anno"></context:component-scan>
	
	<!-- 注解方式实现事务: 指定注解方式实现事务,申明引用的事务管理器类 -->
	<tx:annotation-driven transaction-manager="txManager"/>

3.3 在需要添加事务控制的地方,写上: @Transactional

spring只会对RuntimeException进行事务回滚,不支持对Exception事务自动回滚

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值