首页 > 其他分享 >13、声明式事务

13、声明式事务

时间:2023-08-27 12:55:26浏览次数:39  
标签:13 Spring 事务 AOP 一致性 声明

13、声明式事务

13.1、回顾事务

  • 要么都成功,要么都失败

  • 事务在开发种十分的重要,设计到数据一致性的问题,非常的重要

  • 确保完整性和一致性

事务的ACID原则

  1. 原子性

  2. 一致性

  3. 隔离性:多个业务操作同一个资源,防止数据损坏

  4. 持久性:事务一旦提交,无论系统出现什么问题,结果都不会受到影响,被持久化到存储器中

13.2、Spring中的事务管理

  • 声明式事务AOP

  • 编程式事务

     

标准配置

要开启 Spring 的事务处理功能,在 Spring 的配置文件中创建一个 DataSourceTransactionManager 对象:

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<constructor-arg ref="dataSource" />
</bean>

配置事务通知

<!--    配置事务通知-->
<!-- 配置事务的传播特性-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="query" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>

AOP切入事务

<aop:config>
   <aop:pointcut id="txPointCut" expression="execution(* com.an.mapper.*.*(..))"/>
   <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"></aop:advisor>
</aop:config>

标签:13,Spring,事务,AOP,一致性,声明
From: https://www.cnblogs.com/AnJiaYu/p/17660158.html

相关文章

  • 【web_逆向13】ob混淆及实战
    什么是ob混淆?OB混淆和变量名混淆是常用的代码混淆技术。OB混淆是指在代码中添加一些无用的代码和函数,以增加代码的复杂度和难以理解性,从而增加代码的保护性。变量名混淆是指将变量名替换为无意义的字符串,增加代码的难度和防止代码的逆向分析。ob混淆的特点它会把常规的......
  • POJ 1308 Is It A Tree?
    这是我做出来的第一道有含量的ACM题,应该好好总结一下!这道1308的题,其实很简单,只要抓住了树的特征,就可以解出来。我的解法的思想是这样的:树的分支数m和树的结点数n有一个关系:n==m+1,只要抓住了这个特征,问题便可迎刃而解! 源代码:#include<stdio.h>#include<cstring>inta,b,m=0,n=0,k=......
  • oracle学习笔记(13)——数据库的启动与关闭
    1、常用的服务(1)OracleServiceSID     数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。     注:SID-数据库标识 ......
  • SpringBoot - 事务处理
    事务介绍是一组操作的集合,它是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败Spring事务管理:注解:@Transactional位置:业务层的方法上、类上、接口上作用:将当前方法交给spring进行事务管理,方法执行前,开始事务。成功执行完毕,提交事务,出现异常,回滚事务引入案......
  • MySQL事务
    2023.8.261.事务的四大特性A原子性C一致性I隔离性D持久性2.会出现的问题脏读:读到了另一个事物中未提交的修改不可重复读:一个事务前后两次因为另一个事务做了修改或导致读到的数据不同幻读:一个事务前后两次因为另一个事务做了新增而读取到了......
  • CMU 15-213:DataLab(整数部分)
    本笔记仅仅只是用于记录,内容为提示性,题主做的不一定完全符合规范!!!!。本实验中,只有整型只能使用“+”和位运算符。后面浮点数可以用控制循环。1.异或运算直接用公式,或者像我这样利用真值表凑的/**bitXor-x^yusingonly~and&*Example:bitXor(4,5)=1*Lega......
  • 【主席树】CF813 E. Army Creation
    【主席树】CF813E.ArmyCreation题目链接:https://codeforces.com/contest/813/problem/E题意多次询问,求一个区间内,所有数个数的总和,但相同的数最多被计算k次,强制在线。题解这道题和牛客一道题很像,是那道题的加强版,链接在这:题解链接。那道题可以离线,所以离线处理+树状数组......
  • 【13.0】sqlalchemy 集成到Flask框架
    【在Flask中集成SQLAlchemy】在Flask中集成SQLAlchemy可以通过使用第三方扩展包flask-sqlalchemy来实现,以下是详细的步骤和说明:首先,需要导入SQLAlchemy类以及flask_sqlalchemy模块:fromflask_sqlalchemyimportSQLAlchemy实例化SQLAlchemy对象:db=SQLAlchemy()这个......
  • 1300亿参数,国内首个数学大模型MathGPT上线!多项基准赶超GPT-4
    前言 数学的命运齿轮从此开始转动。国内首个专为数学打造的千亿级大模型MathGPT正式上线,在多项基准测试中碾压GPT-4,刷新SOTA。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。......
  • LeetCode 131. 分割回文串
    题目链接:LeetCode131.分割回文串题意:给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。解题思路:dfs算法的过程其实就是一棵递归树,所有的dfs算法的步骤大概有以下几步:找到中止条件:即......