ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring Transaction

2022-02-03 19:34:13  阅读:130  来源: 互联网

标签:xml 事务 Transaction 隔离 spring 提交 注解


@Transactional
可以标记在类,方法
建议写在方法上。如果类和方法都有,优先识别方法上的。
建议写在业务逻辑类上。
事务配置的属性
isolation:设置事务的隔离级别
propagation:事务的传播行为
脏读: 一个事物不读另一个没有提交的数据;
不可重复读针对1行数据;
幻读针对表;

原子性,隔离性,一致性,持久性;
隔离级别:读未提交,读已提交,可重复读,序列化;

mysql 默认隔离级别 可重复读;
oracle 默认读已提交;

事务的传播特性:
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=36dab731b7124fa3b02d03aa7e85a8b6.png?,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBANTk2NTA2Njc4,size_20,color_FFFFFF,t_70,g_se,x_16
在这里插入图片描述

开启新事务,需父方法和子方法不在一个类里面。
用于记录操作流水等场景。

超时属性 timeout
指定事务最长等待时间

如果基于注解的配置和xml的事务都配置了,以注解的优先。
推荐用注解的方式。
注解的方式显的更灵活。 xml 配置一次切点就好。

-----------------------------------xml 配置-------------------------------------------------

<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
    <property name="dataSource" ref="dataSource"></property>

</bean>

<!--基于注解方式的事务,开启事务的注解驱动
如果基于注解的和xml的事务都配置了会以注解的优先
-->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>


<!--用于声明事务切入的所有方法-->
<aop:config>
    <aop:pointcut id="transactionCut" expression="execution(* cn.abc.service.impl.*.*(..))"/>
    
</aop:config>

<!--用来明确切点匹配到的方法哪些方法需要使用事务-->
<tx:advice>
    <tx:attributes>
        <!--可以使用通配符-->
        <tx:method name="add*"/>
        <tx:method name="update*"/>
        <tx:method name="delete*"/>
        <tx:method name="get*" read-only="true" propagation="SUPPORTS"></tx:method>
        <tx:method name="query*" read-only="true"></tx:method>
    </tx:attributes>
</tx:advice>

Spring事务的实现方式和实现原理;
说一下Spring的事务的传播行为;
说一下spring的事务隔离?
spring框架的事务管理有哪些优点?

标签:xml,事务,Transaction,隔离,spring,提交,注解
来源: https://blog.csdn.net/jiachanghui007/article/details/122776536

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有