美文网首页
(四)Spring事务管理接口的介绍

(四)Spring事务管理接口的介绍

作者: 莫夏_b560 | 来源:发表于2019-06-22 23:07 被阅读0次

    Spring 事务管理接口
    说明
    所谓事务管理,其实就是“按照给定的事务规则来执行提交或者回滚操作”。
    Spring 框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架通过实现策略接
    口 PlatformTransactionManager,从而能支持各种数据访问框架的事务管理
    在 SpringBoot 中,当我们使用了 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa
    依赖的时候,框架会自动默认注入 DataSourceTransactionManager 或
    JpaTransactionManager(事务管理器)。 所以我们不需要任何额外配置就可以用
    @Transactional 注解进行事务的使用。

    API
    Spring 的事务管理有三个核心接口,分别是:
    PlatformTransactionManager

    public interface PlatformTransactionManager {
    // 获得事务
    // 返回一个已经激活的事务或创建一个新的事务(根据给定的 TransactionDefinition 类
    TransactionStatus getTransaction(@Nullable TransactionDefinition defini
    // 提交事务
    // 用于提交 TransactionStatus 参数代表的事务
    void commit(TransactionStatus status) throws TransactionException;
    // 回滚事务
    // 用于回滚 TransactionStatus 参数代表的事务
    void rollback(TransactionStatus status) throws TransactionException;
    }
    
    

    TransactionDefinition

    public interface TransactionDefinition {
    // 返回定义的事务传播行为
    int getPropagationBehavior();
    // 返回定义的事务隔离级别
    int getIsolationLevel();
    // 返回定义的事务超时时间
    int getTimeout();
    // 返回定义的事务是否是只读的
    boolean isReadOnly();
    // 返回定义的事务名字
    String getName();
    }
    

    TransactionStatus

    public interface TransactionStatus extends SavepointManager, Flushable {
    // 返回当前事务状态是否是新事务
    boolean isNewTransaction();
    // 返回当前事务是否有保存点
    boolean hasSavepoint();
    // 设置当前事务应该回滚
    void setRollbackOnly();
    // 返回当前事务是否应该回滚
    boolean isRollbackOnly();
    // 用于刷新底层会话中的修改到数据库,一般用于刷新如 Hibernate/JPA 的会话,
    @Override
    void flush();
    // 当前事务否已经完成
    boolean isCompleted();
    }
    

    相关文章

      网友评论

          本文标题:(四)Spring事务管理接口的介绍

          本文链接:https://www.haomeiwen.com/subject/zxcbqctx.html