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 声明式事务使用

  • 只读模式设置
  • 事务超时设置
相关推荐
java_logo8 分钟前
LinuxServer.io LibreOffice 容器化部署指南
java·开发语言·docker·dubbo·openoffice·libreoffice·opensource
IvorySQL22 分钟前
PostgreSQL 中的“脏页(Dirty Pages)”是什么?
数据库·postgresql·开源
qq_5895681026 分钟前
@NotBlank与@NotEmpty注解无法导入
java·开发语言
李拾叁的摸鱼日常32 分钟前
Spring Boot中OncePerRequestFilter原理与Filter单次调用控制全解析
java·后端
script.boy35 分钟前
基于spring boot校园二手交易平台的设计与实现
java·spring boot·后端
爱潜水的小L1 小时前
自学嵌入式day30,回收进程
java·linux·服务器
咖啡の猫1 小时前
Python字典的查询操作
数据库·python·c#
这儿有一堆花1 小时前
2025 年免费指纹浏览器清单
数据库
我家领养了个白胖胖1 小时前
SSE在Spring ai alibaba中同时使用Qwen和DeepSeek模型
java·后端·ai编程
AI科技摆渡1 小时前
GPT-5.2介绍+ 三步对接教程
android·java·gpt