`
gao234
  • 浏览: 32656 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring事务注意事项

阅读更多

Spring的基于注解的声明式事务,配置起来非常简单,但是使用的时候需要注意两点:

假设

public class AServiceImpl implements AService {
    [......]

   public void saveA(A a){
         ADao.insertA(a);
   }
}

 

1. @Transactional必须标注在入口方法上。如:

public class ADaoImpl extends BaseDao implements ADao {
    @Transactional
    public void insertA(A a){
          insert("insert_a", a);
          insert("insert_b", a.getB());
   }
}

 如果是下面这种,就会失效:

public class ADaoImpl extends BaseDao implements ADao {
    
    public void insertA(A a){
           insertAA(A a);
   }

   @Transactional
   public void insertAA(A a){
          insert("insert_a", a);
          insert("insert_b", a.getB());  
   }
}

 2.加上事务的方法必须抛出RuntimeException的子类,否则不会回滚,如果在上面的加了@Transactional的insertA里catch了数据库异常,并且没有抛出,则这个方法的事务不会回滚。

分享到:
评论

相关推荐

    SpringBoot事务和Spring事务详讲

    本文将详细介绍 Spring 和 Spring Boot 中事务的使用方法及其注意事项。 #### 二、事务的基本概念 在讨论 Spring 事务之前,我们先从日常生活中的一个常见场景——取钱说起。当你从 ATM 机上取款时,这一过程可以...

    spring 注解事务管理

    注意事项 - 如果`@Transactional`注解在非public方法上,Spring将不会进行事务管理,因为Spring AOP默认只代理public方法。 - 事务的边界应该是原子性的,也就是说,事务中的所有操作要么全部成功,要么全部失败。...

    Spring声明式事务配置管理方法

    6. **其他注意事项**: - 事务管理器和事务策略的命名应具有模块化,方便维护。 - 配置中可能需要根据实际情况调整事务的隔离级别、超时限制、回滚规则等属性。 7. **声明式事务的四种配置方式**: - XML配置:...

    java springAOP 事务+注释

    2. **Spring事务管理** 在Spring中,事务管理分为编程式和声明式两种。编程式事务管理需要在代码中显式地调用开始、提交、回滚等事务操作,而声明式事务管理则更简洁,通过配置或者注解即可实现,降低了代码的耦合...

    hibernate 事务管理注意事项

    ### hibernate 事务管理注意事项 在使用Hibernate框架进行数据库操作时,事务管理是确保数据一致性和安全性的重要环节。本文将围绕“hibernate 事务管理注意事项”这一主题展开讨论,通过对给定文件中的标题、描述...

    springAop事务配置

    - Spring事务管理器会捕获到方法抛出的异常,并根据配置决定是否回滚事务。 4. **事务的边界** - 事务的边界通常由方法定义,事务管理器会在方法调用开始时开始事务,在方法正常结束时提交事务,遇到异常时回滚...

    springboot中事务管理@Transactional的注意事项与使用场景

    SpringBoot 中事务管理 @Transactional 的注意事项与使用场景 在本篇文章中,我们将详细讲解 SpringBoot 中事务管理 @Transactional 的注意事项与使用场景,以帮助开发者更好地理解和使用 @Transactional 注解。 ...

    SpringAOP整合Hibernate并使用事务

    7. **注意事项** - 配置事务时,注意隔离级别、传播行为和回滚规则的设置,以满足不同的事务需求。 - 事务管理应尽可能局限于需要事务的代码块,避免不必要的性能开销。 - 使用AOP事务管理时,确保被事务管理的...

    spring 事务详解

    - **注意事项**:如果使用此传播行为,即使当前方法所在的事务失败,新开启的事务也会独立提交或回滚。这可能会导致一些意外的行为,因此需要谨慎使用。 5. **PROPAGATION_NOT_SUPPORTED**: - **定义**:以非...

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    五、注意事项 1. `@Transactional`注解的传播属性:默认为`PROPAGATION_REQUIRED`,表示如果当前没有事务,则新建一个;如果有事务,则加入到当前事务。 2. 事务的隔离级别:默认为`ISOLATION_DEFAULT`,可以根据...

    spring学习之八--Hibernate编程式事务

    而PlatformTransactionManager接口是Spring事务管理的抽象,提供了开始、提交、回滚事务的方法,例如DataSourceTransactionManager(适用于JDBC)和HibernateTransactionManager(适用于Hibernate)。 以下是一个...

    Spring3事务管理——使用@Transactional 注解.rar

    5. **注意事项** - `@Transactional`注解仅在Spring AOP代理能够拦截到的方法上生效,因此,如果在非Spring管理的类或静态方法中使用,事务管理将不起作用。 - 如果事务属性设置不当,可能会导致数据不一致或并发...

    Spring中文文档下载

    对于Spring的文档,可能会涉及如何打开CHM(Compiled HTML Help)文件,以及阅读PDF文档时需要注意的事项。 `Spring3.2中文版.pdf`是Spring 3.2版本的中文文档,此版本进一步优化了对Java EE 6的支持,增强了数据...

    Spring Boot的事务控制.docx

    - **注意事项**: - **propagation属性**:设置事务传播行为。例如,当方法被另一个带有事务的方法调用时,如何处理这个事务。常见的传播行为有`REQUIRED`、`SUPPORTS`、`NOT_SUPPORTED`、`REQUIRES_NEW`等。 -...

    Spring21:2021年Spring学期注意事项

    【Spring21:2021年Spring学期注意事项】 在2021年Spring学期,Spring框架迎来了新的发展,这不仅是技术更新迭代的过程,也是开发者们不断提升编程技能的关键时期。"Spring21"可能指的是Spring Framework的一个特定...

    mybatis和Spring结合例子

    5. **注意事项** - 在Spring中,确保配置了正确的事务管理器类型,对于MyBatis通常是`org.springframework.jdbc.datasource.DataSourceTransactionManager`。 - MyBatis的SqlSession应该在Spring的事务边界内使用...

    spring配置

    #### 六、事务配置注意事项 1. **配置文件结构**: 通常,Spring配置文件包含三个主要部分:数据源(`DataSource`或`SessionFactory`)、事务管理器(`TransactionManager`)和代理机制。 2. **事务边界**: 在整个...

    学习spring的好东西

    **十二、其他注意事项** Spring有多个核心模块,如Core Container、Data Access/Integration、Web等,理解这些模块的功能有助于更好地使用Spring。此外,表单的action属性设置,以及SSH项目重构的步骤也是开发中需要...

    springcloud2.0.4+LCN

    六、注意事项 1. 配置LCN时需确保所有微服务的客户端名称不冲突,以免事务管理混乱。 2. 确保`tx-manager`服务的稳定性,它是整个分布式事务的核心。 3. 测试时应充分考虑各种异常场景,确保事务处理的正确性。 ...

    2020面试题总结Spring篇.pdf

    #### 注意事项: - 大多数情况下,开发者会选择使用`PROPAGATION_REQUIRED`。 - `PROPAGATION_NESTED`可以看作是在当前事务中创建一个保存点,类似于JDBC中的保存点机制。 ### Spring事务管理 #### 管理方式: 1...

Global site tag (gtag.js) - Google Analytics