java干货,spring声明式事务

文章目录

    • 一、编程式事务
      • [1.1 什么是编程式事务](#1.1 什么是编程式事务)
      • [1.2 编程式事务的优缺点](#1.2 编程式事务的优缺点)
    • 二、声明式事务
      • [2.1 什么是声明式事务](#2.1 什么是声明式事务)
      • [2.2 声明式事务的优点](#2.2 声明式事务的优点)
      • [2.3 Spring 事务管理器](#2.3 Spring 事务管理器)
      • [2.4 spring 声明式事务使用](#2.4 spring 声明式事务使用)

一、编程式事务

1.1 什么是编程式事务

  • 编程式事务是指通过手动编写 程序来管理事务,即通过编码的方式 直接控制事务的提交回滚
  • 在java 中,通常使用事务管理器(如Spring 中的PlatformTransactionManager)来实现编程式事务

1.2 编程式事务的优缺点

  • 编程式事务的主要优点灵活性高 ,可以按照自己的需求来控制事务的粒度、模式等
  • 其缺点是需要编写大量的代码。可读性和可维护性不是很好,代码复用性不高

二、声明式事务

2.1 什么是声明式事务

  • 声明式 事务是指使用 注解XML 配置的方式来控制事务的提交回滚 ,只要告诉哪个方法需要事务即可,这就是声明式,程序员只需要写配置即可

2.2 声明式事务的优点

  • 开发者只需配置即可,具体事务的控制实现由第三方框架实现,避免我们直接对事务进行操作
  • 声明式事务可以将业务代码事务逻辑分开来,提高代码的可读性和可维护性

2.3 Spring 事务管理器

  • Spring 声明式事务对应的依赖
    • spring-tx:包含声明式事务实现的基本规范(事务管理器规范接口事务增强等 )
    • spring-jdbc: 包含DataSource 方式事务管理器实现类(DataSource) DataSourceTransactionManager
    • spring-orm:包含其他持久层框架的事务管理器实现类 ,如Hibenate、jpa 等
    • 如果持久层使用的是JDBC、JdbcTemplate、MyBatis,那么就用DataSourceTransactionManager,也就是导入spring-jdbc依赖
    • 如果持久层使用的Hibenate,那么就用HibernateTransactionManager,也就是导入spring-orm 依赖

2.4 spring 声明式事务使用

  • 只读模式设置
  • 事务超时设置
相关推荐
张小姐的猫8 分钟前
【C++开发脚手架】 —— Jsoncpp上手
java·linux·开发语言·网络·c++·tcp/ip·udp
一晌小贪欢9 分钟前
python-第20天:关键字参数与不定长参数
java·开发语言·前端·python·数据可视化·函数参数·python办公
JavaPub-rodert15 分钟前
一个后台系统如何同时支持 MySQL、PostgreSQL、SQLite、SQL Server?从 ShiyuAdmin 的 GORM 多数据库适配说起
数据库·mysql·postgresql
小翰生信15 分钟前
转录组下游分析全流程:DESeq2 差异分析、GO/KEGG 富集与 GSEA 实战
数据库·矩阵·golang
南大白19 分钟前
IDEA Maven+JDK 全局配置 日志记录
java·maven·intellij-idea
2603_9664372620 分钟前
拷贝中断文件丢失,电脑资料抢救实操方案
数据库·电脑
harmony&27 分钟前
MySQL 数据库从入门到实战:原理、安装与 SQL 详解
数据库·sql·mysql
程序员贺加贝28 分钟前
报表大-IN-优化-一条-product_profile-超大-IN-SQL-背后的报表任务治理
java·spring boot·sql·性能优化·架构
霸道流氓气质34 分钟前
Spring AI多模型路由与动态切换
java·后端·spring