当前位置: 首页 > news >正文

Spring声明式事务(Spring学习笔记十三)

        不推荐使用编程式事务 

在Spring-dao.xml中配置声明式事务

   <!--配置声明式事务    --><!--获得transactionManager然后把他丢给他的构造器   constructor-arg --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><constructor-arg ref="dataSource"/></bean>

 结合aop实现事务的织入 分两步

        第一步:
 <!--1、配置事务通知事务式tx:开头   需要先导入事务的约束文件    xmlns:tx="http://www.springframework.org/schema/tx"http://www.springframework.org/schema/txhttps://www.springframework.org/schema/tx/spring-tx.xsd和导入aop的约束一样的就是把sop改成tx--><!--id=接你想给这个事务通知取什么名字    transaction-manager=是spring提供的唯一的事务管理器,这一句语句是固定的 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><!--给那些方法配置事务 就是name=后面接方法名  也口语直接接 * 给所有的方法配置事务--><!--配置事务的传播特性    增删改需要配置 propagation= 默认的为REQUIRED  我们一般也设置为这个   查询的话我们用可以改成read-only="true"只读的意思 --><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="txPoint" expression="execution(* com.li.dao.*.*(..))"/><!--给表达式下面的所有包织入事务将txAdvice切入到txPoint--><aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/></aop:config>

相关文章:

  • 腾讯云故障,该如何规避?
  • 前台往后台传值,null到后台变成了undefined ,NaN到了后台变成了null
  • IMBoy缓存系统深度解析:为何选择depcache而非ETS或Redis
  • 基于单片机数码管20V电压表仿真设计
  • LeetCode-热题100:152. 乘积最大子数组
  • 自动驾驶中的传感器融合算法:卡尔曼滤波器和扩展卡尔曼滤波器
  • 无人机飞行知识
  • Vue的模块化开发初探
  • 十四款大型语言模型在《街头霸王III》中一决雌雄
  • Gradle系列(五)-常用的gradle命令
  • 牛顿:Archetype AI 的开创性模型,实时解读真实世界的新宠儿
  • 蓝桥杯 经验技巧篇
  • Http Download
  • UE4_动画基础_ 使用分层动画(Using Layered Animations)
  • 探索算力(云计算、人工智能、边缘计算等):数字时代的引擎
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CentOS7简单部署NFS
  • Flannel解读
  • GraphQL学习过程应该是这样的
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • javascript 总结(常用工具类的封装)
  • java多线程
  • Mysql数据库的条件查询语句
  • mysql外键的使用
  • Python_OOP
  • Vue官网教程学习过程中值得记录的一些事情
  • 力扣(LeetCode)21
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 原生js练习题---第五课
  • ​插件化DPI在商用WIFI中的价值
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ${ }的特别功能
  • (7)STL算法之交换赋值
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (三)docker:Dockerfile构建容器运行jar包
  • (三)mysql_MYSQL(三)
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)fock函数详解
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Framework杂记
  • .Net Remoting常用部署结构
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • /run/containerd/containerd.sock connect: connection refused
  • ::
  • @AutoConfigurationPackage的使用
  • @PreAuthorize注解
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • []C/C++读取串口接收到的数据程序