spring事务注解有哪些

worktile 其他 34

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring框架提供了多种事务注解来管理数据库事务,常用的事务注解包括:

    1. @Transactional:这是最常用的事务注解,它可以应用在方法和类级别上。当应用在类级别上时,该类的所有方法都将被事务管理。在方法级别上使用该注解,表示该方法需要被事务管理。

    2. @EnableTransactionManagement:这是一个启用事务管理的注解,通常用于配置类上。它会启用Spring的事务管理功能,并根据配置来决定事务的具体实现方式。

    3. @Transactional(propagation = Propagation.XXX):通过设置propagation属性,可以指定事务的传播行为。事务的传播行为用于控制多个事务方法之间的相互调用和嵌套关系。

    4. @Transactional(isolation = Isolation.XXX):通过设置isolation属性,可以指定事务的隔离级别。事务的隔离级别用于控制多个事务同时执行时的数据一致性和并发访问的情况。

    5. @Transactional(readOnly = true):通过设置readOnly属性为true,可以指定事务为只读事务。只读事务中,数据库的数据不会被更新,只能被查询。

    6. @Transactional(rollbackFor = Exception.class):通过设置rollbackFor属性,可以指定事务在遇到异常时需要回滚的类型。默认情况下,Spring只会在遇到RuntimeException及其子类异常时回滚事务。

    7. @Transactional(noRollbackFor = Exception.class):通过设置noRollbackFor属性,可以指定事务在遇到指定类型的异常时不需要回滚。默认情况下,Spring会在遇到未检查异常时回滚事务。

    这些事务注解可以根据具体的需求进行组合使用,来实现对数据库事务的灵活管理。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring 事务注解是一种简化的方式来实现事务管理。通过使用这些注解,可以将事务逻辑直接应用于业务方法,而不需要手动编写事务管理的代码。

    以下是常用的 Spring 事务注解:

    1. @Transactional:@Transactional 是最常用的事务注解,它可以应用于类或方法上。当应用于类上时,表示该类中的所有公共方法都将具有事务性。当应用于方法上时,表示该方法将具有事务性。@Transactional 注解提供了一些属性可以配置事务的传播行为、隔离级别、超时时间等。

    2. @Transactional(propagation):通过传播行为属性,可以控制事务在不同方法之间的传播方式。包括 seven types:REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。

    3. @Transactional(isolation):通过隔离级别属性,可以控制事务的隔离级别。包括 four types:DEFAULT、READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ、SERIALIZABLE。

    4. @Transactional(readOnly):通过只读属性,可以告诉 Spring 该事务是否为只读事务。只读事务可以提高性能。

    5. @Transactional(noRollbackFor) 和 @Transactional(rollbackFor):通过这两个属性,可以设置异常触发回滚事务的规则。noRollbackFor 属性指定不触发事务回滚的异常类型,而 rollbackFor 属性指定触发事务回滚的异常类型。

    除了以上这些常用的事务注解,Spring 还提供了一些其他注解来实现细粒度的事务控制,例如:

    • @TransactionalEventListener:用于在事务提交后触发事件监听器的注解。
    • @TransactionScope:用于定义一个新的事务范围的注解。
    • @TransactionalFactoryBean:用于创建一个工厂 bean,该工厂 bean 将在每个方法上创建一个新的事务。

    总之,使用 Spring 事务注解可以简化事务管理的代码,提高系统的可维护性和可读性。通过灵活配置注解的属性,可以满足不同的事务管理需求。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Spring框架中,有以下几个常用的事务注解:

    1. @Transactional:用于标记方法或类,指示该方法或类需要在事务环境中执行。当标记在类上时,表示类中的所有方法都需要在事务环境中执行。

    2. @Transactional(propagation = Propagation.REQUIRED):用于指定事务的传播行为。默认值为REQUIRED,表示如果当前存在事务,则加入该事务,如果当前没有事务,则创建一个新的事务。

    3. @Transactional(propagation = Propagation.REQUIRES_NEW):表示当前方法将创建一个新的事务,如果当前存在事务,则挂起该事务。

    4. @Transactional(propagation = Propagation.NOT_SUPPORTED):表示当前方法将不运行在事务中。如果当前存在事务,则将它挂起。

    5. @Transactional(propagation = Propagation.MANDATORY):表示方法必须在事务中运行,如果当前不存在事务,则抛出异常。

    6. @Transactional(propagation = Propagation.NEVER):表示方法不能在事务中运行,如果当前存在事务,则抛出异常。

    7. @Transactional(propagation = Propagation.SUPPORTS):表示方法可以在事务中运行,如果当前存在事务,则加入该事务,如果当前不存在事务,则以非事务方式执行。

    8. @Transactional(isolation = Isolation.DEFAULT):用于指定事务的隔离级别。默认值为DEFAULT,表示使用数据库默认的隔离级别。

    9. @Transactional(timeout = 5):用于指定事务的超时时间,单位为秒。如果事务执行时间超过超时时间,则事务将被回滚。

    10. @Transactional(readOnly = true):用于指定事务的只读属性。如果将readOnly属性设置为true,则事务只能读取数据,不能修改数据。

    以上就是Spring框架中常用的事务注解。通过使用这些注解,可以方便地管理和控制方法或类的事务行为。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部