Spring 事务实现方式:

在这里插入图片描述

Spring 事务实现方式:

Spring并不直接支持事务,只有当数据库支持事务的时候,Spring才支持事务,Spring只不过简化了开发人员实现事务的开发步骤

Spring事务的实现方式有两种:

一、基于申明式事务:

@Service
@Transactional
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    
    @Override
    public void updateUser(User user){
        userMapper.updateUser(user);
    }
}

通过在方法或类上面添加 @Transactional 注解来实现的,这种方式也称为基于注解的事务管理,他可以让开发者通过注解的方式来管理事务,而不需要手动编写事务管理代码,实现原理是基于Spring AOP 机制,当使用 @Transactional 注解时,Spring会自动将该方法或类进行事务增强。事务增强会在方法执行前开启事务,在方法执行后根据方法执行情况决定是提交事务还是回滚事务。

二、基于编式事务:

@Service
@Transactional
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    
    @Override
    public void updateUser(User user){
        
        transactionaTemplate.execute(new TransactionCallbackWithoutResult(){
            
            @Override
            protected void doInTransactionWithoutResult(TransactionStatus status)
            userMapper.updateUser(user);
        }
        
    });
    
     
}

是事物基于编程式事务,是通过使用 TransactionaTemplate 对象来实现的,TransactionaTemplate是Spring提供的一个用于管理事务的工具类。可以在代码中手动开启、提交、回滚事务,在上述代码中只用了 TransactionaTemplate 来管理事务。在 updateUser 方法中使用transactionaTemplate 的 execute方法来执行一个事务。

基于注解的事务适合简单的事物场景,可以提高开发效率和代码可读性,而基于编程是事务粒度细,适合复杂的事物场景,实际应用中可以根据具体情况选择适合自己的事务管理方式。

相关推荐

  1. Spring 事务实现

    2024-04-21 19:40:02       39 阅读
  2. spring 事务方式事务传播

    2024-04-21 19:40:02       10 阅读
  3. Spring系列:基于Spring-Jdbc实现事务

    2024-04-21 19:40:02       29 阅读
  4. 分布式事务实现方式

    2024-04-21 19:40:02       23 阅读
  5. 分布式事务实现方案

    2024-04-21 19:40:02       37 阅读
  6. 60.Spring事务实现基本原理

    2024-04-21 19:40:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-21 19:40:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-21 19:40:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-21 19:40:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-21 19:40:02       20 阅读

热门阅读

  1. Python与设计模式之适配器的使用方法

    2024-04-21 19:40:02       14 阅读
  2. 三七互娱,oppo,快手25届暑期实习内推

    2024-04-21 19:40:02       16 阅读
  3. SQLSERVER对等发布问题处理

    2024-04-21 19:40:02       12 阅读
  4. 工作中常用到的一些sql脚本

    2024-04-21 19:40:02       15 阅读
  5. 【QT教程】QML音视频效果实现

    2024-04-21 19:40:02       13 阅读
  6. Debian

    Debian

    2024-04-21 19:40:02      11 阅读
  7. ARM Day7

    2024-04-21 19:40:02       13 阅读
  8. Linux-System V共享内存

    2024-04-21 19:40:02       14 阅读
  9. Stable Diffusion 本地部署教程

    2024-04-21 19:40:02       15 阅读
  10. Solidity基础面试题

    2024-04-21 19:40:02       13 阅读